System and Method for Information Sharing Using Visual Tags

ABSTRACT

Source data stored on a source device may be shared with other devices. Sharing the source data may include facilitating communication associated with the source data, based on a communication protocol, between a first device and another device. Receiving a first token associated with the source data may be facilitated. The first token may be encoded to generate a visual tag. An image of the visual tag may be provided to enable a second device to capture the image, retrieve the first token after decoding the visual tag, and use the first token to access the source data utilizing a communication protocol.

FIELD

The subject technology relates in general to information sharing, andmore particularly to information sharing using visual tags.

BACKGROUND

With the advancement of network technologies and rapid development ofmany social networks (e.g., Facebook, LinkedIn, MySpace, Twitter,Google+, etc.), people may share information in a verity of methods. Forexample, via email, one can attach files intended to be shared includinga host of documents and media files (e.g., image files, audio files,video files, etc.) to an email message or provide links to the onlinesources of information by including one or more uniform resource locator(URLs) that point to the online sources. Sharing information via socialnetworks is also very popular and effective for a number of purposes,for example, people may readily share various media files and even havetheir peers informed about their whereabouts and kind of activities theyare enjoying.

Using mobile phones, money can be transferred from one account toanother account. Mobile phones can also be used as credit card readersfor transferring money from a credit card account of a credit cardholder to an account associated with another person. A credit cardholder may also setup a mobile phone to store the credit cardinformation and use the mobile phone, instead of the credit card toperform transactions with a machine such as an automated teller machine(ATM). Various mobile phone applications may facilitate scanningproducts' barcodes on mobile phones and retrieve product information,such as product labels, stored on the barcodes.

SUMMARY

In an aspect of the disclosure, a non-transitory machine-readable mediummay comprise instructions stored therein and executable by one or moreprocessors to facilitate performing a method for facilitating sharingsource data. The method may comprise supporting communication based on afirst communication protocol between a first device and a remote device.The communication may be associated with source data. Receiving a firsttoken associated with the source data. Encoding the first token tocreate a visual tag may be facilitated. Displaying the visual tag, toenable a second device to optically capture the visual tag utilizing acamera may be provided. The visual tag may allow the second device toaccess the source data utilizing the first token from the visual tag andutilizing a second communication protocol. The second device may beunable to access the source data without using the first token. Thefirst communication protocol may be the same or different from thesecond communication protocol, and the first device may be acommunication end point device.

In another aspect of the disclosure, a non-transitory machine-readablemedium comprising instructions stored therein and executable by one ormore processors to facilitate performing a method for facilitatingsharing source data. The method may comprise facilitating receiving afirst token associated with the source data. Encoding the first token tocreate a visual tag may be facilitated. Communication of the visual tagfrom a first device to a second device may be provided to enable thesecond device to access the source data utilizing the first token fromthe visual tag and utilizing a communication protocol. The second devicemay be unable to access the source data without using the first token.

In yet another aspect of the disclosure, an apparatus for facilitatingsharing source data may comprise a first network interface configured tosupport communication based on a first communication protocol betweenthe apparatus and a remote device. An encoder may be configured tofacilitate receiving a first token associated with source data. Theencoder may be configured to facilitate encoding the first token using avisual coding technique to generate a visual tag. A display may beconfigured to facilitate display of an image of the visual tag, toenable a first device located within close proximity of the apparatus tocapture the image and to enable the first device to access the sourcedata utilizing the first token from the visual tag and utilizing asecond communication protocol. The first device may be unable to accessthe source data without using the first token. The first communicationprotocol may be the same or different from the second communicationprotocol, and the apparatus may be a communication end-point device.

In yet another aspect of the disclosure, an apparatus for facilitatingsharing source data may comprise a processor operable to facilitatereceiving a first token associated with the source data. The processormay be operable to facilitate encoding the first token to create avisual tag. The processor may be operable to provide for communicationfrom a first device to a second device the visual tag, to enable thesecond device to access the source data utilizing the first token fromthe visual tag and utilizing a communication protocol. The second devicemay be unable to access the source data without using the first token,and the first device comprises the apparatus.

In yet another aspect of the disclosure, a method for facilitatingsharing source data may comprise supporting communication based on afirst communication protocol between a first device and a third device.The communication may be associated with source data. Receiving a firsttoken associated with the source data may be facilitated. Encoding thefirst token to create a visual tag may be facilitated. Displaying thevisual tag may be provided to enable a second device to opticallycapture the visual tag utilizing a camera and to allow the second deviceto access the source data utilizing the first token from the visual tagand utilizing a second communication protocol. The second device may beunable to access the source data without using the first token. Thefirst communication protocol may be the same or different from thesecond communication protocol, and the first device may be acommunication end point device.

In yet another aspect of the disclosure, a method for facilitatingsharing source data may comprise facilitating receiving a first tokenassociated with the source data. Encoding the first token to create avisual tag may be facilitated. Communication of the visual tag from afirst device to a second device may be provided to enable the seconddevice to access the source data utilizing the first token from thevisual tag and utilizing a communication protocol. The second device maybe unable to access the source data without using the first token.

In yet another aspect of the disclosure, a non-transitorymachine-readable medium comprising instructions stored therein andexecutable by one or more processors to facilitate performing a methodfor facilitating sharing source data. The method may comprisefacilitating optically capturing, by an optical device of a firstdevice, an image of a visual tag from a second device. The visual tag ofthe second device may be located within close proximity of the opticaldevice of the first device, and the visual tag may comprise a visuallyencoded first token associated with the source data. The first token maybe a non-public token, and may be based on the source data for sharing.Decoding the visual tag to retrieve the first token may be facilitated.Communication based on a first communication protocol to a third devicemay be provided to download the source data using the retrieved firsttoken. The second device may be adapted to provide display of the visualtag.

In yet another aspect of the disclosure, a non-transitorymachine-readable medium comprising instructions stored therein andexecutable by one or more processors to facilitate performing a methodfor facilitating sharing source data. The method may comprisefacilitating obtaining an image of a visual tag from a first device,wherein the visual tag comprises a visually encoded first tokenassociated with the source data. The first token may be a non-publictoken. Decoding the visual tag to retrieve the first token may befacilitated. Communication based on a first communication protocol to asecond device may be provided to download the source data using theretrieved first token.

In yet another aspect of the disclosure, an apparatus for facilitatingsharing source data may comprise a camera configured to facilitatecapturing an image of a visual tag representing a first token associatedwith the source data from a display of a first device, located withinclose proximity of the camera. The first token may be a non-publictoken, and may be based on the source data for sharing. A decoder may beconfigured to facilitate decoding the visual tag to retrieve the firsttoken. A network interface may be configured to provide forcommunication based on a first communication protocol to a remote deviceto download the source data using the retrieved first token. The displayof the first device may be enabled to display the image of the visualtag to be captured by the camera.

In yet another aspect of the disclosure, an apparatus for facilitatingsharing source data may comprise a processor operable to facilitateobtaining an image of a visual tag from a first device. The visual tagmay comprise a visually encoded first token associated with the sourcedata, and the first token may be a non-public token. The processor maybe operable to facilitate decoding the visual tag to retrieve the firsttoken. The processor may be operable to provide for communication basedon a first communication protocol to a second device to download thesource data using the retrieved first token.

In yet another aspect of the disclosure, a method for facilitatingsharing source data may comprise facilitating optically capturing, by anoptical device of a first device, an image of a visual tag from a seconddevice. The visual tag of the second device may be located within closeproximity of the optical device of the first device. The visual tag maycomprise a visually encoded first token associated with the source data,and the first token may be a non-public token. The first token may bebased on the source data for sharing. Decoding the visual tag may beprovided to retrieve the first token. Communication based on a firstcommunication protocol to a third device may be provided to download thesource data using the retrieved first token. The second device may beadapted to provide display of the visual tag.

In yet another aspect of the disclosure, a method for facilitatingsharing source data may comprise facilitating obtaining an image of avisual tag from a first device. The visual tag may comprise a visuallyencoded first token associated with the source data, and the first tokenmay be a non-public token. Decoding the visual tag to retrieve the firsttoken may be facilitated. Communication based on a first communicationprotocol to a second device may be provided to download the source datausing the retrieved first token.

It is understood that various configurations of the subject technologywill become readily apparent to those skilled in the art from thedisclosure, wherein various configurations of the subject technology areshown and described by way of illustration. As will be realized, thesubject technology is capable of other and different configurations andits several details are capable of modification in various otherrespects, all without departing from the scope of the subjecttechnology. Accordingly, the summary, drawings and detailed descriptionare to be regarded as illustrative in nature and not as restrictive.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A-1D are conceptual block diagrams of examples of systems forsharing information using a visual tag.

FIGS. 2A-2C are conceptual block diagrams of examples of systems forsharing information using the visual tag.

FIGS. 3A-3B are diagrams of examples of tokens including metadataassociated with source data shared using the visual tag.

FIG. 4 is a block diagram of an example of a source data that can beshared using the visual tag.

FIG. 5 is a conceptual block diagram of an example of a device forsharing information using the visual tag.

FIG. 6 is a conceptual block diagram of an example of a device forreceiving shared information using the visual tag.

FIGS. 7A-7D are flowcharts illustrating exemplary methods for sharinginformation using the visual tag.

FIGS. 8A-8B are flowcharts illustrating exemplary methods for sharinginformation using the visual tag.

FIG. 9A-9B are flowcharts illustrating exemplary methods for downloadinga source file using the information shared based on the visual tag.

FIG. 10 is a conceptual block diagram of an example of a device orserver.

FIGS. 11-14 are block diagrams representing examples of apparatuses forsharing information using a visual tag.

DETAILED DESCRIPTION

The detailed description set forth below is intended as a description ofvarious configurations of the subject technology and is not intended torepresent the only configurations in which the subject technology may bepracticed. The appended drawings are incorporated herein and constitutea part of the detailed description. The detailed description includesspecific details for the purpose of providing a thorough understandingof the subject technology. However, it will be apparent to those skilledin the art that the subject technology may be practiced without thesespecific details. In some instances, well-known structures andcomponents are shown in block diagram form in order to avoid obscuringthe concepts of the subject technology. Like components are labeled withidentical element numbers for ease of understanding.

Often information is shared between devices using email or one or moresocial networks. Certain information may be transferred to multipledevices using visual encoding. For example, product barcodes (e.g.,universal product codes (UPCs)) may be scanned by a handheld devicehaving a barcode scanner application, which may retrieve bar codeinformation such as product label. Two-dimensional or matrix barcodes(e.g., quick response (QR) codes) may provide fast readability andlarger storage capacity, as compared to UPC barcodes. QR code is,however, still limited in storage. For instance, QR code is generallylimited to certain applications such as product labels, commercialtracking information, transport and entertainment ticketing information,and the like, where the size of the information encoded is limited anddepends on the type of data encoded.

In an aspect of the subject technology, a source data intended to beshared between the first and the second devices may be stored on aremote device and have a desired size not limited by visual encoding.The type of the source data is also not limited by visual encoding. Forexample, the source data may comprise data files including media data,connection settings information, device management information, deviceconfiguration information and so forth, which can be downloaded by thesecond device from the remote device by using a token communicated fromthe first device to the second device using a visually encoded tag(e.g., visual payload). The visual tag may be generated using any visualcoding techniques such as QR, but not limited to QR. The visual tag maybe visually captured (e.g., scanned/photographed) via a camera of thesecond device (e.g., a built-in camera) and decoded at the second deviceto retrieve the token that enables the second device to access thesource data, which the second data could not access without theinformation provided by the token. The information transfer in thesubject technology benefits from the security of the image transfer(e.g., scanning) via a camera, which is not susceptible to commonsecurity threats that other modes of communication such as wirelesscommunication between two devices may be vulnerable to. The subjecttechnology may also lower the threshold of required devicehardware/technologies to facilitate information exchange. In one aspect,a camera may be an optical device. In one aspect, a camera may be anoptical scanner. A scanner may use a laser. A camera may optically (orvisually) capture a visual tag as an image.

FIGS. 1A-1D are conceptual block diagrams of examples of systems forsharing information using a visual tag. Systems 100A-100B include afirst device 110 (hereinafter “device 110”) one or more second devices120 (herein after “device 120”), and one or more remote devices 130 and140. Device 110 and device 120 may comprise handheld devices (e.g.,mobile phones, personal data assistants (PDAs), tablet computers, laptopcomputers, etc.). Remote devices 130 and 140 may comprise serversincluding cloud servers, desktop computers, or portable devices such aslaptop computers, tablets, personal data assistants (PDAs), mobilephones, and the like. In an aspect, a “remote” device, or a device“remote” to a system or another device, may be a device that is notdirectly connected to the system or the other device. For example, theremote devices 130 and 140 are remote to both device 110 and device 120,because remote devices 130 and 140 are not directly connected to device110 and device 120, but may be connected indirectly through a networkwhich can include, for example, another server, or the Internet. Inparticular, device 120 may not have authorized access to remote devices130 and 140.

A user of device 110 may decide to share, with device 120 or otherdevices, a source data 135 stored in a source device. In one aspect, asource device may be a remote device such as one or more remote devices130 and 140, or one or more other remote devices. In another aspect, asource device may be a local device such as device 110 or another localdevice.

In a scenario that source device is a remote device, once the user ofdevice 110 decides to share the source data 135 stored in the sourcedevice with device 120, device 110 may request and obtain information(e.g., metadata) associated with accessing the source data 135 by device120 (e.g., a token 150) from the remote device. Device 110 may encodetoken 150 to generate a visual tag 155, which can be made available todevice 120 by displaying it on device 110 or by communicating the visualtag 155 to device 120 (e.g., via email, multimedia messaging service(MMS), peer-to-peer (P2P) communication, or Bluetooth (BT)communication, etc.). Device 120 may scan tag 155 from the display ofdevice 110 or receive it from device 110 via a communication method suchas one of the above-mentioned communication methods or another method,and decode the captured visual tag 155 to retrieve token 150, whichenables device 120 to attain authorized access to remote device 130 anddownload source data 135 (see FIG. 1B).

In a case where a visual tag of a token 150 is transferred to device 120by making the visual tag visible to device 120, once token 150 iscaptured by device 120, device 110 and device 120 are no longer requiredto be in close proximity, and devices 110 and 120 can be moved away fromeach other, and device 120 can still obtain/download the source datausing one or more of the various communication protocols describedherein.

In a case where a visual tag of token 150 is transferred to device 120by a non-visual communication method (e.g., email, MMS, etc.), thephysical distance between devices 110 and 120 is not an issue, and thedevices 110 and 120 can be located anywhere to send and receive thevisual tag, and device 120 can obtain/download the source dataregardless of the distance between devices 110 and 120.

In a scenario that device 110 is the source device (relevant arrows arenot shown in FIG. 1A for simplicity), the metadata associated withaccessing the source data 135 by device 120 (e.g., token 150) can begenerated by device 110 and stored in device 110 and can be readilyaccessed and encoded to generate visual tag 155, which can be madeavailable to device 120 as mentioned above. Device 120 may then decodethe visual tag and use token 150 (retrieved from the visual tag) todownload source data 135 from device 110 (relevant arrows are not shownin FIG. 1B for simplicity).

Regardless of whether a source device is a local device or a remotedevice, device 120 may download source data 135 by using one or morecommunication protocols. By way of illustration without limitation, suchprotocols may be one or more of the following or another communicationprotocol: a peer-to-peer (P2P) protocol, an interactive connectivityestablishment (ICE) protocol, a session initiation protocol, a Bluetoothprotocol (BT), a wireless fidelity (Wi-Fi) protocol, a near fieldcommunication protocol, an extendable messaging and presence protocol(XMPP), a push protocol, or a non-industry standard communicationprotocol.

In an aspect, device 120 may comprise a mobile device provided to a newemployee of a business entity (e.g., a company, corporation,organization, firm, etc.) and device 110 may be a mobile device used byan information technology (IT) person of the business entity. The ITperson may use device 110 to setup or configure device 120 of a numberof new employees by using a visual tag technique, i.e., simplydisplaying a visual tag (e.g., visual tag 155) on device 110 and alloweach new employee to scan the visual tag 155 using a built-in camera 125of device 120 or making visual tag 155 available to device 120 via anon-visual communication method. The visual tag 155 once decoded bydevice 120 may provide information necessary to setup and configuredevice 120 of the new employee and even contain executable commands,which when executed, for example, by an operating system of device 120,may perform the setup and configurations of the device 120. The ITperson may also use the same technique to update information on device120 of employees when needed. The configuration of device 120 maycomprise providing authentication and connection information forconnection to a private network, servers and other computers of thebusiness unit. The IT person may also use device 110 to transfer todevice 120, using the visual tag technique, a file including metadatarelating to a source file that may be located in device 110 or a remotedevice 130. The new employee may use the metadata to access device 110using Bluetooth or Wi-Fi or device 130 using Wi-Fi or through a proxyserver as will be described herein.

In another aspect, the remote devices 130 and 140 may represent a numberof computing devices or servers of the business entity. The IT personmay intend to enable one or more users of devices 120 (e.g., a newemployee such as IT technician) to log on to one or more of the remotedevices 130 and 140 and perform a host of actions such as accessingfiles and performing device setup, device configuration, or otheractivities on any of remote devices 130 or 140, utilizing a tokendecoded from a visual tag. The IT person may transfer token 150 todevice 120 of the IT technician using the above-described visual tagtechnique. Token 150 can provide authorized access by the user of device120 to remote devices 130 and/or 140.

In an aspect, token 150 may be requested and obtained from one of theremote devices, for example, remote device 130. Device 120 may use token150 to access device 130 and download source data 135. Although, FIGS.1A-1D, for simplicity, show that source data 135 is stored in remotedevice 130, in general, source data 135 may be stored on one or moreother remote devices 140 and token 150 may provide access informationfor connection to the device 140 that holds source data 135 and downloadpermission to download source data 135. In FIG. 1B, for simplicity, onlyone device 120 is shown. In case of multiple devices 120, for eachdevice 120, device 110 requests and receives from remote device 130 arespective token 150, which may include particulars of that device 120and can be expirable.

In systems 100C and 100D, devices 110 and 120 are operatively coupled toremote devices 130 and 140 (which may be behind a firewall) via a proxyserver 160 (hereinafter “proxy 160”). Proxy 160 can establish variousmodes of communications (e.g., P2P communication through ICE protocol)over a network (e.g., the Internet) between devices that could not reachothers directly otherwise. Accordingly, as shown in FIG. 1C, device 110may request and obtain information associated with accessing the sourcedata 135 by device 120 (e.g., a token 150) from the remote device 130through proxy 160, and communicate token 150 to device 120 by using thevisual tag technique, as mentioned above. Device 120, may then accessremote devices 130 and/or 140 via proxy 160, by using token 150 (forsimplicity, only one device 120 is shown and coupling to remote devices140 via proxy server 160 is not shown in FIG. 1D). In case source data135 is stored in device 110 (relevant arrows are not shown in FIG. 1Dfor simplicity), device 120 may access the source data 135 via proxy 160or by using other communication protocols such as BT protocol, etc. Whendownloading source data 135, device 120 may not need be in closeproximity of device 110.

In one aspect, a visual tag may comprise various shapes placed within aboundary. The boundary may be multi-dimensional. In one aspect, a visualtag is encoded with information (e.g., token). While a visual tag may bevisible to a user and identifiable as a tag to a user, the informationencoded in the visual tag is not understandable to, or identifiable by,a user when it is displayed to a user or when it is simply scanned,photographed or captured by a camera without decoding the visual tag.Decoding may be carried out by decoding software that may recognize theshapes and utilize decoding keys and algorithms. In one aspect, when avisual tag is provided for display, it is displayed or represented withnon-alphanumeric shapes; for example, it is not displayed or representedas binary code (e.g., l's and 0's).

In one aspect, a visual tag may comprise one or more of the followingelements: position marker(s), error correction key(s) and alignmentinformation for the tag. Referring to FIG. 1A, a visual tag 155 maycomprise one or more of the following: one or more position markers 155A(e.g., three position markers are shown in this example), versioninformation 155B, error correction keys 155C, an alignment marker 155D,a two-dimensional boundary 155E, format information 155F and timinginformation 155G. While a square boundary 155E is shown, the shape ofthe boundary is not limited to this shape.

FIGS. 2A-2C are conceptual block diagrams of examples of systems 200A,200B, and 200C for sharing information using the visual tag 155. System200A includes device 110, one or more devices 120, network 150, remotedevice 130, server 230, and cloud server 240. In an aspect, device 110may instruct remote device 130 to transmit source data 135 of FIG. 1 toanother remote device such as a server 230 or a cloud server 240. Device110 may subsequently request and obtain, for each device 120, a token(e.g., token 150), which is created in real time, from remote device130. Device 110 may transfer token 150 to each device 120 using thevisual tag technique described above. Device 120 may be operativelycoupled to remote device 130, server 230, and cloud server 240, vianetwork 250. Token 150 may comprise metadata including information thatenables device 120 to connect to any of server 230 or cloud server 240that has received the source data 135 transmitted by remote device 130,and to download source data 135. In order to access the source data,each device 120 (for simplicity, only one device 120 is shown in FIG.2B) may use metadata included in token 150 to connect to any of server230 or cloud server 240, via network 250, and download source data 135.

Network 250 may include, for example, any one or more of a personal areanetwork (PAN), a local area network (LAN), a campus area network (CAN),a metropolitan area network (MAN), a wide area network (WAN), abroadband network (BBN), the Internet, and the like. Further, thenetwork 250 can include, but is not limited to, any one or more ofnetwork topologies, including a bus network, a star network, a ringnetwork, a mesh network, a star-bus network, tree or hierarchicalnetwork, and the like.

In one example, system 200C includes device 210, one or more devices220, a web server 260 (e.g., associated with pocketcloud.com), a remoteserver 270 (e.g., a native access translate (NAT) Traversal server), andsource device 280 (optional), coupled via network 250. Device 210 mayreceive token 150 of FIGS. 1A-1D from remote server 270 (or sourcedevice 280) via network 250. In an aspect, source data 135 may be storedin device 210 and device 110 may generate token 150. As mentioned above,device 210 may encode token 150 to generate visual tag 155 and make thevisual tag 155 available to device 120 via the visual techniquedescribed above. Device 220 may retrieve token 150 from visual tag 155and use token 150 to access source device 280 or remote device 270, vianetwork 250, to obtain source data 135. In case source data 135 isstored in device 210, token 150 includes access information associatedwith device 210, and device 220 may access device 210 via network 250 orother modes of communication using communication protocols such as BTprotocol, P2P protocol and the like.

In some aspects, token 150 may be encoded in the form of a uniformresource locator (URL) (e.g., HTTP URL) to allow device 220 to accesssource data 135 via a website (e.g., pocketcloud.com) represented by theURL of token 150. The HTTP URL can be launched through any Web browserwithout the need for any specialized application. The HTTP URL may pointto a Web application that contains necessary JavaScript code to detectwhether a suitable application (e.g., a remote access application or aPocketCloud application) is installed locally on device 220 or not. Ifthe local application is installed locally on device 220, the localapplication can be launched by the Web browser. The local applicationmay proceed to download source data 135 from e.g., source device 280,remote device 270 or device 210, depending on the information encoded intoken 150, which includes identification information of the device thatstores source data 135. If the application is not installed locally ondevice 220, the Web browser may communicate back to the Web Server(e.g., Web server 260) and request the Web server to obtain source data135 from the device that stores the source data 135 (e.g., one of sourcedevice 280, remote device 270 or device 210). This may allow the Webbrowser to subsequently download the file from the Web server 260without the need of the Web application (e.g., the native application).

FIGS. 3A-3B are diagrams of examples of tokens 150 including metadataassociated with source data 135 of FIG. 1A shared using the visual tag155 of FIGS. 1A-1D. As mentioned above, source data 135 to be shared byuser of device 110 of FIG. 1A with users of devices 120 of FIG. 1A maybe stored in remote devices 130 or 140 of FIGS. 1A-1D. For thisscenario, token 150 may comprise a number of metadata. For example,token 150 may comprise, among other things, information relating to theremote devices such as an identifier 310 and authentication information320 associated with any of source devices (e.g., device 130 or 140,device 110 or devices 270, 280 and 220 of FIG. 2C) that holds the sourcedata 135. Token 150 may also comprise information pertaining to thesource data 135, for example, an identifier 330 and a path 340. Theidentifier 330 may identify a file that contains source data 135 amongother files, and path 340 may show a path in the file system of thesource device that points to the file containing source data 135. Token150 may be encoded in the form of a URL 342 (e.g., HTTP URL), which canbe launched through any Web browser without the need for any specializedapplication.

In another scenario discussed with respect to FIGS. 2A-2B above, thesource data is transmitted from device 130 of FIGS. 2A-2B to one or moreremote servers (e.g., server 230 or cloud server 240 of FIGS. 2A-2B).Token 150, in this scenario, may comprise among other things,information relating to the remote servers such as an identifier 350 andauthentication information 360 associated with any of server 230 orcloud server 240 that holds the source data 135. Token 150 may alsocomprise information pertaining to the source data 135, for example, anidentifier 370 and a path 380. The identifier 370 may identify a filethat contains source data 135 among other files stored in the remoteservers (e.g., server 230 cloud server 240), and path 380 may show apath in the file system of the remote servers that points to the filethat contains source data 135. Token 150 may be issued by the remotedevice 130 with an expiration time (including date), after which theremote device 130 may not accept token 150 as being valid. Token 150 mayalso uniquely represent, or be uniquely associated with, one or more ofthe following: the source data 135, the device 120, the user of thedevice 120, and a time related to creation or usage of token 150. In oneaspect, token 150 is generated based on, or as a function of (e.g., ahash function), one or more of the following: the source data 135, theidentity of device 120, the identity of the user of the device 120, anda time related to creation or usage of token 150. Token 150 may be anon-public, unique token. Token 150 may be a secure (or encrypted)token. In one aspect, token 150 is temporary and not permanent, and isgenerated only after the source data 135 for sharing is identified orselected by device 110.

FIG. 4 is a block diagram of an example of source data 135 that can beshared using the visual tag 155 of FIGS. 1A-1D. Although the metadatarelating to the source data 135 (i.e., token 150 of FIGS. 3A-3B) may belimited in size such that the token 150 can be encoded using a visualcoding technique to generate the visual tag 155, no limitation regardingthe size or the type of information in the shared source data 135 isexerted by the subject technology. For example, source data 135 maycomprise, among other information, media files 410, source pathinformation 420, remote desktop connection information 430, securityinformation 440, device management information 450, and deviceconfiguration information 460. Media files may include, for example,audio files 412 (e.g., music, recorded voice and recorded sounds, etc.)video files 414 (e.g., files containing frames of images such as videoclips), audio-video files 416 (e.g., movies, video clips with sound),images 418 (e.g., personal picture, graphic arts, images of variousobjects, advertisement images, etc.) or other files such as text filesincluding PDF files. Remote path information 420 may include, forexample, a directory name 422, a folder name 424, a subfolder name 426and a file name 428. Source path information 420 may provide for a userof device 120 of FIGS. 1A-1D to access a remote device and update afile. For example, an IT person may use path information 426 to updateor make changes to certain files in an employee's computer.

Remote desktop connection information 430 may include, for example, anInternet Protocol (IP) address 432, a user name 434, and a file name436. Remote desktop connection information 430 may facilitate for amobile device user (e.g., user of device 120) to remotely connect todesktop of a remote computer (e.g., a personal computer) and access afile identified by the file name 436. Security information 440 mayinclude, for example, network security information 422 (e.g., securitytokens such as shared secrets and the like) and security codinginformation 444 (e.g., cryptographic information such as public-keys andthe like). Security information enables the user of device 120 to accesssecured remote computers or servers.

Device management information 450 may include, for example, color depth452, resolution 454, and desktop settings 456. Device managementinformation 450 may be useful for a user of a mobile device (e.g.,device 120) and may enable the user to modify various features (e.g.,resolution, color, or other settings) of, for example, his/hers desktopcomputer, remotely, from the mobile device. Device configurationinformation 460 may include, for example, network configurationinformation 462, peripheral device configuration information 464, andclient-server configuration information 466. A user of a mobile device(e.g., device 120) may use network configuration information 462 toconfigure a device (e.g., the mobile device a remote device such adesktop computer) for connection to a network (e.g., PAN, a LAN, a CAN,a MAN, a WAN, etc.). Peripheral device configuration information 464may, for instance, be used by the user of device 120 to configure adevice (e.g., device 120, or a remote device such as a remote computer)for connection to a printer (e.g., a dedicated printer or a networkprinter) or a television for connection to another device such asdigital video recorder (DVR). Client server configuration information466 may provide a user of device 120 to configure a number of remotecomputers as clients or servers.

FIG. 5 is a conceptual block diagram of an example of a device 110 ofFIGS. 1A-1D or device 210 of FIG. 2C for sharing information using thevisual tag 155 of FIGS. 1A-1D. In the following, for simplicity,references are made to devices 110 and 120. Such references may also bevalid for devices 210 and 220 of FIG. 2C. Device 110 may include aBluetooth (BT) interface 510 storage 520, a processor 530, a firstnetwork interface 512, a second network interface 514, a display 540,and a memory 550 operatively coupled to one another via a bus 555. Itshould be understood that communication means other than busses can beutilized with the disclosed configurations. Memory 550 may store varioussoftware modules such as a validation module 552, a remote desktopmodule 554, a security module 556, an encoder 558, an identificationmodule 560, a decoder module 562, a network communication module 582,and an interface module 570. Display 540 may facilitate transfer, usingthe visual tag technique, between device 110 and one or more devices 120of FIGS. 1A-1D, where a token 150 of FIGS. 3A-3B encoded via encoder 558is scanned by device 120. In an aspect, device 110 may use first networkinterface 512 to communicate with a remote device (e.g., remote devices130 or 140 of FIGS. 1A-1D, or devices 270 or 280 of FIG. 2C) using afirst communication protocol (e.g., hyper text transfer protocol (HTTP))to connect to the remote device 130 via a network (e.g., network 250 ofFIGS. 2A-2B). In another aspect, device 110 may use second networkinterface 514 to communicate with the remote device 130 using a secondcommunication protocol (e.g., P2P protocol, an ICE protocol, a sessioninitiation protocol, a BT protocol a Wi-Fi protocol, an XMPP, a pushprotocol, or a non-industry standard communication protocol). When usingsecond network interface 514, device 110 may connect to the remotedevice through a proxy server 160 of FIGS. 1C-1D.

Encoder 558 may comprise various portions, where a first portion (e.g.,a visual encoder portion) may facilitate encoding information for visualencoding, and a second portion(s) may facilitate encoding information,optionally, in conjunction with items such as 582 and/or 584 to allowthe encoded information to be sent out via items such as 510, 512 and/or514. Decoder 562 may comprise various portions used to facilitatedecoding information, optionally, in conjunction with items such as 582and/or 584, when information is received via items such as 510, 512and/or 514. In one aspect, a BT interface/BT communication module canrefer to another type of short-range communicationinterface/communication module.

When a first user (e.g., the user of device 110 or 210) decides to sharea source data 135 of FIG. 4 with a second user (e.g., a user of device120), the first user may start an application in device 110. Theapplication may comprise remote desktop module 554 and identificationmodule 560. Remote desktop module 554 may be configured to facilitateproviding for display a desktop representation of a remote device on adisplay 540 of device 110. Remote desktop module 554 may facilitateproviding for display various files on the remote device that may beselected for sharing. The identification module 560 (e.g., inconjunction with remote desktop module 554) may be configured tofacilitate searching for or selecting source data 135 and identifyingsource data 135 and providing an identification information of sourcedata 135. The identification information may comprise, for example, oneor more identifiers (e.g., a device name, an IP address, etc.) of thesource device (e.g., remote devices 130 or 140 of FIGS. 1A-1D, devices270 or 280 of FIG. 2C, device 110, or 210), a path in a file system ofthe source device, or a file name that identifies a file that containsthe source data 135. The first or second network interfaces 512 or 514may facilitate connection to the source device, and communicating theidentification information to the source device. The source device maycreate token 150 in real time and provide token 150 to device 110, whichcan be received by one of the first or second network interfaces 512 or514. In an aspect, the provided token 150 sent over proxy server (e.g.,proxy server 160) using a communication protocol (e.g., XMPP or ICE) isencoded based on the communication protocol. At device 110, decoder 562may facilitate decoding the encoded token 150, before encoder 558facilitates encoding token 150 to enable transfer of token 150 via thevisual tag technique.

When device 120, as described in more detail with respect to FIG. 6,connects to the remote device (e.g., remote devices 130 or 140 of FIGS.1A-1D, devices 270 and 280 of FIG. 2C, device 110, or device 220) andattempts to access source data 135, the source device, for example,obtain an identifier of device 120 or a user of the device 120 andinform device 110 of the attempt. At device 110, security module 556 mayfacilitate one or more security measures. For example, security module556 may cause first or second network interfaces 512 or 514 to receivethe identifier of device 120 or the user of the device 120 from theremote device. Validation module 552 may validate the identifier bydisplaying the identifier using display 540 and receiving approval fromthe user of device 110. Security module 556 may subsequently cause firstor second network interfaces 512 or 514 to communicate the approval tothe source device to enable authentication of device 120 or the user ofdevice 120. In one aspect, security module 445 may cause first or secondnetwork interfaces 512 or 514 to communicate to the remote deviceinformation that can identify device 120 or the user of device 120, toenable the remote device to authenticate device 120 or the user ofdevice 120 when device 120 attempts to access source device to downloadsource data 135.

The interface module 570 may provide user interfaces for communicationof various information to the user of device 110. For example, a userinterface provided by interface module 570 and displayed on display 540may be configured to receive inputs from the user of device 110, forexample, the approval discussed above with respect to the securitymeasures. Display 540 may include a liquid crystal display (LCD) or atouch sensitive display. Processor 530 may be a general-purposeprocessor (e.g., a central processing unit (CPU)), a graphics processingunit (GPU), a microcontroller, a Digital Signal Processor (DSP), anApplication Specific Integrated Circuit (ASIC), a Field ProgrammableGate Array (FPGA), a Programmable Logic Device (PLD), a controller, astate machine, gated logic, discrete hardware components, or any othersuitable entity that can perform calculations or other manipulations ofinformation. Processor 530 may execute various applications and softwaremodules stored in memory 550, for example, validation module 552, remotedesktop module 554, security module 556, encoder 558, etc. In oneaspect, some of the applications or modules may be implemented asfirmware.

In some aspects, various application and software modules such asvalidation module 552, remote desktop module 554, security module 556,encoder 558, and the like may be stored on storage 520, which mayinclude one or more machine-readable media. Storage 520 may include aRandom Access Memory (RAM), a flash memory, a Read Only Memory (ROM), aProgrammable Read-Only Memory (PROM), an Erasable PROM (EPROM),registers, a hard disk, a removable disk, a CD-ROM, a DVD, or any othersuitable storage device. The machine-readable medium may be a singlemedium or multiple media (e.g., a centralized or distributed database,and/or associated caches and servers) that store the one or more sets ofinstructions. The term “machine-readable medium” shall also be taken toinclude any non-transitory medium that is capable of storing, encodingor carrying a set of instructions for execution by the machine and thatcause the machine to perform any one or more of the methodologies of theembodiments discussed herein. The term “machine-readable medium” shallaccordingly be taken to include, but not be limited to, storage mediumssuch as solid-state memories, optical media, and magnetic media.Non-transitory medium includes volatile and non-volatile memories.

Still referring to FIG. 5, in one aspect, utilizing BT interface 510 andBT communication module 584 device 110 may detect presence of device120, for example, automatically without user intervention. For instance,the operating system of device 110 may execute BT communication module584 that can monitor and detect presence of BT-enabled devices. Upondetection of presence of device 120, the BT communication module 584 mayinitiate the application (e.g., the application described with referenceto FIGS. 5, 7A and 8A) for sharing information, for example,automatically without user intervention. Identification module 560 ofthe application may enable a user of device 110 to identify or selectsource data 135 for sharing (e.g., identification or selection of aremote device(s) and a file(s) therein) by, for example, providing fordisplay a graphical user interface to allow the user to select a sourcedata among a plurality of source data or allow the user to enterinformation that identifies the source data (e.g., type in the name ofthe file). Based on the detection of the presence of device 120,identification module 560 may also determine an identifier of device120. In one example, if multiple devices 120 are detected, thenidentification module 560 may provide for display the devices that aredetected to allow the user of device 110 to select one or more of thedetected devices for sharing the source data. BT communication module584 may also facilitate communication of visual tag 155 from device 110to device 120.

In one aspect, device 110 is a hardware device (including software) andis a communication end point device. Device 110 may be, for example, adevice handled by an end user. Device 110 typically has a user interfacemodule/device (e.g., items 570, 540) to provide/receive informationto/from a user. In one aspect, device 110 is not a router or an accesspoint that simply routes data transmissions initiated by anotherhardware device. As a communication end point device, device 110 mayinitiate a data communication. Device 110 (e.g., utilizing items 560,570) may initiate sharing of a source data, for example, based on a useraction at device 110 (e.g., based on the selection of the source dataand/or selection of device 120). In one aspect, device 110 (e.g.,utilizing items 560, 570) may determine the final end destinations of adata communication. For example, item 560 of device 110 may decide thatthe final end destinations of a data communication are devices 110 and130 for requesting and receiving a token. Upon receiving and processingthe token, device 110 may decide the final end destinations of a datacommunication are devices 110 and 120 for sending and receiving theprocessed token, and device 110 may initiate this transact ion withdevice 120.

Device 110 may also initiate a remote desktop session between device 110(as a first end point) and device 130 (as a second end point) to providefor display at device 110 a representation of the entire desktop ofdevice 130 (or a representation of files or folders on device 130), toallow accessing any and all files on device 130 (or allow accessingfiles that the user of device 110 is permitted to access), and toexchange the request for, and receipt of, a token.

In one aspect, device 120 is a hardware device (including software) andis a communication end point device. For example, upon receiving atoken, device 120 (e.g., item 652 in FIG. 6) may determine that thefinal end destinations of a data communication are devices 120 and 130for requesting and downloading the source data and may initiate thedownloading transaction.

In one aspect, device 130 is a hardware device (including software) andis a communication end point device. For example, device 130 may be thefinal destination point to receive a request from device 110 to generatea token for the identified source data. Device 130 may be the finaldestination point to receive a request from device 120 to provide thesource data to device 120.

In one aspect, source data 135 may be non-public information (e.g.,information stored on a remote device that is not generally accessibleto the public without specific permission). A non-public remote devicemay be a server that is not an HTTP server.

In one aspect, each of items 510, 520, 530, 555, 512, 514 and 540comprises hardware, and each of items in memory 550 comprises software.In one aspect, each of items 510, 520, 530, 555, 512, 514 and 540 maycomprise hardware and software. Item 510 may comprise software such asitems 554. Each of items 512 and 514 may comprise software such as items556, 560 and/or 582.

FIG. 6 is a conceptual block diagram of an example of a device 120 ofFIGS. 1A-1D or device 220 of FIG. 2C for receiving shared informationusing the visual tag 155 of FIGS. 1A-1D. In the following, forsimplicity, references are made to devices 110 and 120. Such referencesmay also be valid for devices 210 and 220 of FIG. 2C. Device 120 mayinclude a camera 610, storage 620, a processor 630, a first networkinterface 612, a second network interface 614, a BT interface 616, adisplay 640, and a memory 650 operatively coupled to one another via abus 655. It should be understood that communication means other thanbusses can be utilized with the disclosed configurations. Memory 650 maystore various applications and software modules such as a downloadmodule 654, a remote desktop module 654, a decoder 656, an interfacemodule 658, an encoder 672, an BT communication module 686, and anetwork communication module 682 including a Web browser and anapplication (e.g., a remote access application, PocketCloudapplication). Camera 610 may facilitate capturing an image of visual tag155 and transfer of token 150 of FIGS. 3A-3B between devices 120 anddevice 110 of FIGS. 1A-1D. Decoder 656 may decode the visual tag 155 toretrieve token 150. The decoded token 150 may subsequently (e.g., priorto an expiration date of token 150) be used by device 120 to accesssource data 135 of FIG. 4 stored on one of the source devices (e.g.,remote devices 130 or 140 of FIGS. 1A-1D, devices 270 and 280 of FIG.2C, device 110, or device 220).

Encoder 672 may comprise various portions used to facilitate encodinginformation, optionally, in conjunction with items such as 682 and/686,when information is to be sent via items such as 612, 614 and/or 616.Decoder 656 may comprise various portions, where a first portion (e.g.,a visual decoder portion) may facilitate decoding information from avisual tag, optionally, in conjunction with item 684, and a secondportion(s) may facilitate decoding information, optionally, inconjunction with items such as 682 and/or 686. In one aspect, a BTinterface/BT communication module can refer to another type ofshort-range communication interface/communication module.

Download manager 562 may facilitate accessing the remote device anddownloading source data 135 using decoded token 150 within a time periodprior to the expiration time of token 150. Download manager 562 maycause first network interface 612 to access the remote device, via anetwork (e.g., network 250 of FIGS. 2A-2B), using a communicationprotocol such as HTTP. In one aspect, download manager 562 may causefirst network interface 614 to access the source device, via a proxyserver (e.g., proxy server 160 of FIGS. 1C-1D), using a communicationprotocol such as XMPP or ICE. Remote desktop module 654 may beconfigured to facilitate displaying a desktop representation of a sourcedevice on a display 640 of device 120. Interface module 658 may provideuser interfaces for communication of various information to the user ofdevice 120. For example, a user interface provided by interface module658 and displayed on display 640 may be configured to receive inputsfrom the user of device 120, for instance, a location in device 120,where the user wishes to store the downloaded source data 135.

In some aspects, token 150 may include a HTTP URL to allow device 220 toaccess source data 135 via a website (e.g., pocketcloud.com) representedby the URL of token 150. The HTTP URL can be launched through the Webbrowser without the need for any specialized application. The HTTP URLmay point to a Web application that contains necessary JavaScript codeto detect whether an appropriate application (e.g., PocketCloudapplication) is locally installed on device 220 or not. If the localapplication is installed locally on device 220, the local applicationcan be launched by the Web browser. The local application may proceed todownload source data 135 from the source device. If the necessaryapplication is not installed on device 220, the Web browser maycommunicate back to the Web Server (e.g., Web server 260 of FIG. 2C) andrequest the Web server to obtain source data 135 from the device thatstores the source data. This may allow the Web browser to subsequentlydownload the file from the Web server 260 without the need of the Webapplication (e.g., the native application).

Display 640 may include a liquid crystal display (LCD) or a touchsensitive display. Processor 630 may be a general-purpose processor(e.g., a central processing unit (CPU)), a graphics processing unit(GPU), a microcontroller, a Digital Signal Processor (DSP), anApplication Specific Integrated Circuit (ASIC), a Field ProgrammableGate Array (FPGA), a Programmable Logic Device (PLD), a controller, astate machine, gated logic, discrete hardware components, or any othersuitable entity that can perform calculations or other manipulations ofinformation. Processor 630 may execute various applications and softwaremodule stored in memory 650, for example, download manager 652, remotedesktop module 654, decoder 656, imaging module 684, BT communicationmodule 686, and interface module 658. In one aspect, some of theapplications or modules may be implemented as firmware. In some aspects,various applications and software modules such as download manager 652,remote desktop module 654, decoder 656, and interface module 658 may bestored on a storage 620, which may include one or more machine-readablemedia. Storage 620 may include a Random Access Memory (RAM), a flashmemory, a Read Only Memory (ROM), a Programmable Read-Only Memory(PROM), an Erasable PROM (EPROM), registers, a hard disk, a removabledisk, a CD-ROM, a DVD, or any other suitable storage device Themachine-readable medium may be a single medium or multiple media (e.g.,a centralized or distributed database, and/or associated caches andservers) that store the one or more sets of instructions.

In one aspect, each of items 610, 620, 630, 655, 612, 614, 616 and 640comprises hardware, and each of items in memory 650 comprises software.In one aspect, each of items 610, 620, 630, 655, 612, 614, 616 and 640may comprise hardware and software. Item 610 may comprise software suchas items 684. Each of items 612, 614, and 616 may comprise software suchas items 652, 672, 686 and/or 682.

FIGS. 7A-7B are flowcharts illustrating exemplary methods 700A and 700Bfor sharing information using the visual tag 155 of FIG. 1A-1D or device210 of FIG. 2C. In the following, for simplicity, references are made todevices 110 and 120 of FIGS. 1A-1D. Such references may also be validfor devices 210 and 220 of FIG. 2C. Method 700 A is implemented atdevice 110 of FIGS. 1A-1D and begins at operation 710, where device 110supports communication based on a first protocol (e.g., HTTP or XMPP)between device 110 and the source device (e.g., remote devices 130 or140 of FIGS. 1A-1D, devices 270 and 280 of FIG. 2C, device 10, or device220). For example, identification module 560 may determine or provideidentification information of the source data, and interface 512 or 514may receive the identification information directly or indirectlythrough one or more other items such as network communication module 582(that may provide software support for item 512 and/or 514) and/orencoder 558. Interface 512 or 514 may then facilitate transmission ofthe identification information from device 110 to remote device 130utilizing the first protocol. Hence, at least one of items 560, 512, 514and/or other items (e.g., 582) may support communication based on thefirst protocol between devices 110 and 130. Information may be encodedinto the first protocol utilizing items such as 558 and/or 582.

At operation 720, device 110 facilitates receiving token 150 of FIGS.3A-3B that is associated with source data 135 of FIG. 4. For example,interface 512 or 514 may receive token 150, which may then be receivedby one or more items such as items 582, 562, 558 for processing. Hence,at least one of items 512, 514, 582, 562, 558 and/or other items mayfacilitate receiving token 150.

Device 110 (e.g., encoder 558 and/or other items such as item 581) mayinitiate encoding, or encode, token 150 to generate visual tag 155 fordisplay using display 540 (operation 730). At operation 740, device 110may facilitate transferring visual tag 155 to one or more devices 120,for instance, by displaying visual tag 155 to enable one or more devices120 of FIGS. 1A-1D to capture the visual tag or communicating visual tag155 to device 120. For example, encoder 558 and interface module 540 mayallow token 150 to be visually encoded and displayed to device 120.Hence, at least one of items 558, 584, 510 and/or other items mayprovide for communication to device 120 the encoded token 150. In oneaspect, once device 110 identifies or selects a source data, all of theoperations shown in FIG. 7A may be carried out automatically withoutuser intervention. In one aspect, device 120 is within close proximityof device 110, if a camera of device 120 can capture the visual tagdisplayed by device 110. In one example, a camera of device 120 may bewithin 20 feet of the location where the visual tag is displayed.

Method 700B is implemented at device 120 and begins at operation 750,where device 120 facilities capturing an image of visual tag 155 fromdisplay 540 of device 110. In one example, item 684 may perform orfacilitate performing operation 750. Device 120 may subsequently decodevisual tag 155 to retrieve token 150, which was encoded using a visualcoding technique (operation 760). In one example, item 656 may performor facilitate performing operation 760. At operation 770, device 120 mayprovide for communication, based on a communication protocol (e.g., P2Pprotocol, an ICE protocol, a session initiation protocol, a BT protocola Wi-Fi protocol, an XMPP, a push protocol, or a non-industry standardcommunication protocol, or HTTP), to the source device to downloadsource file 135 using retrieved token 150. In one example, at least oneof items 612, 614, 672, 682 and/or other items may perform or facilitateperforming operation 770.

In one advantageous example, some or all of the operations shown in FIG.7B are performed automatically without user intervention.

FIGS. 8A-8B are flowcharts illustrating exemplary methods 880A and 800Bfor sharing information using the visual tag 155 of FIG. 1A-1D. In thefollowing, for simplicity, references are made to devices 110 and 120 ofFIGS. 1A-1D. Such references may also be valid for devices 210 and 220of FIG. 2C. Method 800A may be implemented at device 110 of FIGS. 1A-1Dand begins at operation 810, where a user of device 110 starts anapplication on device 110 to share a source data with a user of device120 of FIGS. 1A-1D. At operation 815, using the application, the user ofdevice 110 searches and locates (or selects from a list) source data 135of FIG. 4 stored on a source device (e.g., remote devices 130 or 140 ofFIGS. 1A-1D, devices 270 and 280 of FIG. 2C, device 110, or device 220).Device 110 may receive metadata (e.g., token 150 of FIGS. 3A-3B) relatedto source data 135 and save the metadata on device 110 (operation 820).At operation 825, device 110 may encode metadata using visual encodingto generate visual tag 155 with an expiration date. The encoded metadatais subsequently shared with device 120 by displaying visual tag 155 ondisplay 540 of FIG. 5 or by communicating visual tag 155 to device 120via one of the communication means described above (operation 830).

Method 800B may be implemented at device 120 and begins at operation840, where the user of device 120 starts an application for receivingthe encoded metadata from device 110, which is located within a closeproximity of device 120. At operation 845, device 120 may photographvisual tag 155 displayed on device 110, which includes the metadata.Device 120 may decode tag 155 to retrieve the metadata (operation 850)and at operation 855, push the metadata to the application's downloadqueue. The application may comprise download manager 652 of FIG. 6, aWeb browser, or a Web application (e.g., PocketCloud Application). Atoperation 860, download manager 652 may facilitate downloading sourcedata 135 using the metadata. In some aspects, the source data 135 may bedownloaded through the Web browser using a URL included in token 150 orthrough the Web application.

FIGS. 9A-9B are flowcharts illustrating exemplary methods 900 fordownloading a source file using the information shared using the visualtag 155 of FIGS. 1A-1D. Method 900A includes portions 940, 950 and 970.Portion 940 may be implemented at device 110 of FIG. 1A-1D or device 210of FIG. 2C. In the following, for simplicity, references are made todevices 210 and 220 of FIG. 2C. Such references may also be valid fordevices 110 and 120 of FIG. 1A-1D. Portion 950 may be implemented atdevice 120 or 220, and portion 970 may be implemented by device 260 ofFIG. 2C or any of devices 130 or 140 of FIGS. 1A-1D. Portion 940 beginswith operation 942, where at device 210 a file is selected by the userof device 210 to share with device 210. At operation 944, Visual tagtransfer starts between device 210 and 220, as described in more detailabove. Using the visual tag transfer technique, metadata encoded in URL,including information such as, source device identification (SID),source file details (FD), and token 150, is communicated to device 220(operation 946).

Portion 950 of method 900A begins at operation 952, where visual taginformation (e.g., the metadata) is received by device 220. Device 220may use the Web browser to access a web server 260 (operation 954).Server 260, at operation 974, the URL points to Web application thatcontains necessary JavaScript to detect a local Web application. Atoperation 956, the Web application detects whether the local Webapplication is installed on device 220. At control operation 958, if thePocketCloud Web application is installed on device 220, control ispassed to operation 960, where the PocketCloud Web application islaunched at device 220 and the SID, FD, and token 150 are passed to thePocketCloud application. Subsequently, at operation 962, PocketCloudapplication downloads the source data 135 of FIG. 1A-1D form the sourcedevice (e.g., remote devices 130 or 140 of FIGS. 1A-1D, devices 270 and280 of FIG. 2C, device 110, or device 220).

Otherwise, if the PocketCloud application is not installed in device220, control is passed to operation 964, where a request is made to webserver 260 (e.g., a PocketCloud server) to download source file 135.Subsequently, at operation 972, server 260 may access source data 135from the source device. Finally, the Web browser downloads the sourcefile 135 from the web server 260 to device 220 (operation 966).

In method 900B, after the operation starts, download manager 652 of FIG.6, at control operation 910, may inquire one of first network interface612 or second network interface 614 of FIG. 6 to find out whether aconnection is made between device 120 and the source device (e.g.,remote devices 130 or 140 of FIGS. 1A-1D, devices 270 and 280 of FIG.2C, device 110, or device 220). If the connection is made, the controlis transferred to control operation 920, otherwise the download manger652 keeps inquiring. At control operation 920, device 120 may determinewhether there are any files pending to be downloaded. If there is nopending file, control is transferred back to control operation 910.Otherwise, at operation 930, download manager 652 downloads source file135 using the shared metadata (e.g., token 150 of FIGS. 3A-3B).

FIG. 10 is a conceptual block diagram of an example of a device orserver. System 1000 may comprise remote devices 130 or 140 of FIGS.1A-1D or server 230 or cloud server 240 of FIGS. 2A-2B, or any device260, 270, 280. System 1000 may be device 110, 120, 210 or 220. System1000 includes a processing system 1002, which may include one or moreprocessors or one or more processing systems. A processor 530 or 630 maybe processing system 1002, and a processor can be one or moreprocessors. The processing system 1002 is capable of communication witha receiver 1006 and a transmitter 1009 through a bus 1004 or otherstructures or devices. It should be understood that communication meansother than basses can be utilized with the disclosed configurations.Processing system 1002 can generate token 150 of FIGS. 3A-3B. In someaspects, processing system 1002 may generate audio, video, multimedia,and/or other types of data to be provided to the transmitter 1009 forcommunication. In addition, audio, video, multimedia, and/or other typesof data can be received at the receiver 1006, and processed by theprocessing system 1002.

The processing system 1002 may include a general-purpose processor or aspecific-purpose processor for executing instructions and may furtherinclude a machine-readable medium 1019, such as a volatile ornon-volatile memory, for storing data and/or instructions for softwareprograms. The instructions, which may be stored in a machine-readablemedium 1010 and/or 1019, may be executed by the processing system 1002to control and manage access to the various networks, as well as provideother communication and processing functions. The instructions may alsoinclude instructions executed by the processing system 1002 for varioususer interface devices, such as a display 1012 and a keypad 1014. Theprocessing system 1002 may include an input port 1022 and an output port1024. Each of the input port 1022 and the output port 1024 may includeone or more ports. The input port 1022 and the output port 1024 may bethe same port (e.g., a bi-directional port) or may be different ports.

The processing system 1002 may be implemented using software, hardware,or a combination of both. By way of example, the processing system 1002may be implemented with one or more processors. A processor may be ageneral-purpose microprocessor, a microcontroller, a Digital SignalProcessor (DSP), an Application Specific Integrated Circuit (ASIC), aField Programmable Gate Array (FPGA), a Programmable Logic Device (PLD),a controller, a state machine, gated logic, discrete hardwarecomponents, or any other suitable device that can perform calculationsor other manipulations of information.

A machine-readable medium can be one or more machine-readable media.Software shall be construed broadly to mean instructions, data, or anycombination thereof, whether referred to as software, firmware,middleware, microcode, hardware description language, or otherwise.Instructions may include code (e.g., in source code format, binary codeformat, executable code format, or any other suitable format of code).

Machine-readable media (e.g., 1019) may include storage integrated intoa processing system such as might be the case with an ASIC.Machine-readable media (e.g., 1010) may also include storage external toa processing system, such as a Random Access Memory (RAM), a flashmemory, a Read Only Memory (ROM), a Programmable Read-Only Memory(PROM), an Erasable PROM (EPROM), registers, a hard disk, a removabledisk, a CD-ROM, a DVD, or any other suitable storage device. Inaddition, machine-readable media may include a transmission line or acarrier wave that encodes a data signal. Those skilled in the art willrecognize how best to implement the described functionality for theprocessing system 1002. According to one aspect of the disclosure, amachine-readable medium is a computer-readable medium encoded or storedwith instructions and is a computing element, which defines structuraland functional interrelationships between the instructions and the restof the system, which permit the instructions' functionality to berealized. Instructions may be executable, for example, by a clientterminal or server or by a processing system of a client terminal orserver. Instructions can be, for example, a computer program includingcode.

A network interface 1016 may be any type of interface to a network(e.g., an Internet network interface) or a proxy server using XMPP, andmay reside between any of the components shown in FIG. 10. For theexample of a remote device 130 of FIGS. 1A-1D, the network interface1016 may be used to communicate with device 110 or 120, for example, toreceive identification information and an approval from device 110 andan identifier of device 120 or the user of device 120 from device 120and to communicate token 150 to device 110 or source data 135 to device120 over network 250 or via proxy server 160 of FIGS. 1C-1D.

A device interface 1018 may be any type of interface to a device and mayreside between any of the components shown in FIG. 10. A deviceinterface 1018 may, for example, be an interface to an external device(e.g., USB device) that plugs into a port (e.g., USB port) of the system1000.

A transceiver block 1007 may represent one or more transceivers, andeach transceiver may include a receiver 1006 and a transmitter 1009. Afunctionality implemented in a processing system 1002 may be implementedin a portion of a receiver 1006, a portion of a transmitter 1009, aportion of a machine-readable medium 1010, a portion of a display 1012,a portion of a keypad 1014, or a portion of an interface 1016, and viceversa.

The subject technology may provide mechanisms and methodology oftransferring information between two or more separate devices tofacilitate file sharing, remote desktop connection settings and devicemanagement settings, by a visual mechanism of information interchangesuch as by QR. The above information transfer may otherwise occurlocally through device-to-device communications such as with a Wi-Fi orBT connection. The subject technology may also facilitate the finaltransfer through an intermediary cloud based server infrastructure. Thesubject technology may be viewed as a simple mechanism for transferringcomplex information from one device to another. The complex informationtransfer might include, for example, file sharing, which may involvesharing source path information, remote desktop connection details,security information, device management, setup information, etc.

In one aspect, the subject technology can provide various advantages,including without limitation the following: quick initial informationtransfer concerning connection information or file information betweentwo distinct devices using a visual approach (by way of a built-incamera) that may lower the threshold of required devicehardware/technologies to facilitate information exchange; transfer ofremote desktop connection information without requiring user interaction(specifically text entry); and transfer device management informationwithout requiring user interaction (specifically text entry or manualsetup).

The two devices may advantageously utilize the built-in display andcamera to perform the sharing of information. For example, a mobileapplication may provide the mechanism to choose the file or connectionsetting that is meant to be shared. The application may generate thevisual tag (e.g., the QR code), as well as scan a previously generatedcode from another device running the application. The application mayhandle the final retrieval of and application of the QR encodedinformation (e.g., file transfer information, remote connection details,and device management details). The QR code may provide a visual taggingstandard to encode the information to be shared (e.g., source filelocation to download, connection details, source file containingconnection details or device specific information.) A cloud based serverinfrastructure may contain software to allow for the downloading of filedata that is being shared, connection information for a remote desktopor desktops, or device management information. A Wi-Fi connection canprovide the transport necessary to download the file, connectioninformation, or device management information. A Bluetooth connectioncan provide the transport necessary to download the file, connectioninformation, or device management information.

In one aspect, various elements of the subject technology may comprise:two devices (e.g., smart phones) with built-in camera used to scan theQR code read from or generated from the other device in the pair; amobile application utilizing the framework of the subject technology;(optional) cloud based server infrastructure; (optional) Wi-Ficonnection; (optional) Bluetooth connection. In one aspect, the subjecttechnology may utilize a number of steps, for example, the steps forsharing a source file between two devices, as follows: an application inthe first device is used to find a file to share with a second device;the file is optionally uploaded to a remote cloud-based server if thefile is to be shared remotely; a QR code may be generated containing themeta information of the file's location; the second device may run anapplication to scan the QR code and retrieve the meta information. Thesecond device uses this meta information to download either directlythrough Bluetooth or Wi-Fi, or from a cloud based server infrastructurehousing the shared file.

In one aspect, a method for transmitting remote desktop connectioninformation may include the following steps: an application is used tofind a remote desktop connection or group of connections to share; a QRcode may be generated containing the meta information of the remotedesktop connection details; the second device runs a software scan theQR code and to retrieve the meta information; the second device usesthis meta information directly to read the encoded information toreproduce the remote desktop connection settings, or download directlythrough BT, Wi-Fi, P2P connection, or from a cloud-based serverinfrastructure housing a file containing extended remote desktopconnection information.

In one advantageous example, various operations described herein may beperformed automatically without user intervention, except that, forexample, a process may require a user to identify/select a source datafor sharing, to select one or more devices 120, and/or toapprove/authenticate device 120 or its user so that device 120 canaccess the source data.

In one aspect, a communication protocol may comprise one or morecommunication protocols. In one aspect, a first communication protocolcan be the same as a second communication protocol utilized by the sameor different devices. In one aspect, a first communication protocol canbe different from a second communication protocol utilized by the sameor different devices. In one aspect, a notation such as a firstdevice/item can be the same as a second device/item. In one aspect, anotation such as a first device/item can be different from a seconddevice/item.

Illustration of Method/Machine-Readable Storage Medium/Apparatus forFacilitating Sharing Information Among Multiple Devices Using a VisualTag (Described as Clauses)

Various examples of aspects of the subject technology are described asnumbered clauses (1, 2, 3, etc.) for convenience. These are provided asexamples, and do not limit the subject technology. Identifications ofthe figures and reference numbers are provided below merely as examplesand for illustrative purposes, and the clauses are not limited by thoseidentifications.

Examples of Encoding Clauses

1. A non-transitory machine-readable medium (e.g., 520, 550, FIG. 5)comprising instructions stored therein, the instructions executable byone or more processors (e.g., 530. FIG. 5) to facilitate performing amethod (e.g., 700A, FIG. 7A) for facilitating sharing source data, themethod comprising:

supporting communication based on a first communication protocol betweena first device and a remote device, wherein the communication isassociated with source data (e.g., 710, FIG. 7A);

facilitating receiving a first token associated with the source data(e.g., 720, FIG. 7A);

facilitating encoding the first token to create a visual tag (e.g., 730,FIG. 7A);

providing for display the visual tag, to enable a second device tooptically capture the visual tag utilizing a camera and to allow thesecond device to access the source data utilizing the first token fromthe visual tag and utilizing a second communication protocol, whereinthe second device is unable to access the source data without using thefirst token (e.g., 740, FIG. 7A),

wherein the first communication protocol is the same or different fromthe second communication protocol,

wherein the first device is a communication end point device.

2. The non-transitory machine-readable medium of clause 1, wherein themethod comprises identifying the source data, to initiate sharing of thesource data, based on a user action at the first device.

3. The non-transitory machine-readable medium of clause 1, wherein themethod comprises identifying, at the first device, the source data forsharing, wherein the supporting communication comprises providing forcommunication, from the first device utilizing the first communicationprotocol to the remote device through a proxy server, identificationinformation of the source data based on the identifying the source data,wherein the facilitating encoding the first token comprises facilitatingencoding the first token using a visual encoding technique, wherein thevisual tag comprises a quick response (QR) coded version of the firsttoken.

4. The non-transitory machine-readable medium of clause 1, wherein themethod comprises identifying the source data for sharing,

wherein the supporting communication comprises providing forcommunication, to the remote device, identification information of thesource data, wherein the identification information comprises at leastone of an identifier of a source device, a path in a file system of thesource device, or a file name,

wherein the supporting communication comprises providing forcommunication, to the remote device, a request for the first token,

wherein the facilitating receiving comprises facilitating receiving thefirst token in response to the request,

wherein the source device contains the source data.

5. The non-transitory machine-readable medium of clause 1, wherein themethod comprises identifying the source data for sharing,

wherein the supporting communication comprises facilitating providingidentification information of the source data to the remote device toenable generation of the first token in real time in response to thefacilitating providing identification information of the source data,

wherein the facilitating receiving the first token comprisesfacilitating receiving the first token, at the first device, utilizingthe first communication protocol, from the remote device via a proxyserver, in response to the facilitating providing identificationinformation of the source data,

wherein the method comprises, prior to the encoding, decoding the firsttoken received utilizing the first communication protocol,

wherein the providing for communication to the second device the firsttoken comprises providing for communication from the first device to thesecond device the first token,

wherein the method comprises providing for communication from the firstdevice to the second device other information for accessing the sourcedata, wherein the other information comprises location of the sourcedata, wherein a size of the first token and the other information forcommunication to the second device is less than a size of the sourcedata, wherein the source data comprises more than one mega bytes,

wherein the facilitating encoding comprises encoding of the first tokenat the first device.

6. The non-transitory machine-readable medium of clause 1, wherein thefacilitating encoding the first token comprises facilitating encodingthe first token using a visual encoding technique, wherein the visualtag comprises a quick response (QR) coded version of the first token,and further comprising facilitating notifying the second device when thefirst device is ready to facilitate providing the display of the visualtag to enable the second device to access the visual tag, wherein thenotifying comprises sending a message to the second device.

7. The non-transitory machine-readable medium of clause 1, wherein themethod comprises at least one of a first security measure and a secondsecurity measure,

wherein the first security measure comprises:

-   -   facilitating receiving information identifying at least one of        the second device or a user of the second device, in response to        the second device attempting to access the source data; and    -   providing for communication, an approval following validation of        the received information by a user of the first device,

wherein the second security measure comprises:

-   -   providing for communication, information identifying at least        one of the second device or the user of the second device, to        enable authentication of the second device or the user of the        second device when the second device attempts to access the        source data.

8. The non-transitory machine-readable medium of clause 1, wherein themethod comprises:

-   -   facilitating transmitting the source data to a server comprising        a cloud server and to send a second token to the first device;    -   facilitating encoding the second token to a second visual tag;    -   providing for access to the second visual tag by the second        device to enable the second device to access the source data        transmitted to the server using the second token.

9. The non-transitory machine-readable medium of clause 8, wherein thefirst or the second token comprises a metadata comprising at least someof an identifier of a source device, an identifier of the server,authentication information associated with the source device,authentication information associate with the server, an identifier ofthe source data, a path of the source data, an identifier of the sourcedata transmitted to the server, or a path of the source data transmittedto the server, wherein the source device comprises the source data.

10. The non-transitory machine-readable medium of clause 1, wherein thesource data comprises at least one of a media file, a document, remotepath information, remote desktop connection information, securityinformation, device management information, or device configurationinformation.

11. The non-transitory machine-readable medium of clause 10, wherein:

the media file comprises at least one of an audio file, a video file, anaudio-video file, or an image,

the remote path information comprises at least one of a directory name,a folder name, a sub-folder name, or a file name,

the remote desktop connection information comprises at least one of anInternet Protocol (TP) address, a username, or a password,

the security information comprises at least one of network securityinformation or security coding information,

the device management information comprises at least one of a colordepth, a resolution, or a desktop setting, and

the device configuration comprises at least one of a networkconfiguration, a peripheral device configuration, or a client-serverconfiguration.

12. The non-transitory machine-readable medium of clause 1, wherein thefirst token is expirable and is a representation unique to one or moreof the following: the source data, the second device, a user of thesecond device, and a time related to creation or usage of the firsttoken, wherein the method comprises at least one of a first method and asecond method,

wherein the first method comprises:

-   -   facilitating receiving a second token associated with second        source data;    -   facilitating encoding the second token to a second visual tag;        and    -   providing access to the second visual tag by the third device to        enable the third device to access the second source data        utilizing a third communication protocol,    -   wherein the first communication protocol is the same or        different from the third communication protocol,    -   wherein the second token is a representation unique to one or        more of the following: the second data, the third device and        time related to creation or usage of the second token,

wherein the second method comprises:

-   -   facilitating receiving, at the first device, a third token        associated with the source data;    -   facilitating encoding the third token to a third visual tag; and    -   providing access to the third visual tag by the fourth device to        enable the fourth device to access the source data utilizing a        fourth communication protocol,    -   wherein the first communication protocol is the same or        different from the fourth communication protocol,    -   wherein the third token is a representation unique to one or        more of the following: the source data, the third device, a user        of the third device, and time related to creation or usage of        the third token.

13. The non-transitory machine-readable medium of clause 1, wherein thefirst device is a mobile device comprising one or more displays, one ormore processors, one or more network interfaces, and the non-transitorymachine-readable medium, wherein a first one of the one or more networkinterfaces is configured to support communication based on the firstcommunication protocol, wherein a second one of the one or more networkinterfaces is configured to support communication based on the secondcommunication protocol, wherein the second device is a mobile device,wherein the camera is a built-in camera, wherein the remote device is acomputing device behind a firewall, wherein the first token does notexist prior to identifying the source data to be shared, wherein thefirst token is creatable in real time and expirable, wherein each of thefirst and second communication protocols comprises one or morecommunication protocols.

14. A non-transitory machine-readable medium (e.g., 520, 550, FIG. 5)comprising instructions stored therein, the instructions executable byone or more processors (e.g., 530, FIG. 5) to facilitate performing amethod (e.g., 700C, FIG. 7C) for facilitating sharing source data, themethod comprising:

facilitating receiving a first token associated with the source data(e.g., 780. FIG. 7C);

facilitating encoding the first token to create a visual tag (e.g., 782,FIG. 7C);

providing for communication from a first device to a second device thevisual tag, to enable the second device to access the source datautilizing the first token from the visual tag and utilizing acommunication protocol, wherein the second device is unable to accessthe source data without using the first token (e.g., 784, FIG. 7C).

15. The non-transitory machine-readable medium of clause 14, wherein themethod comprises identifying the source data to initiate sharing of thesource data, wherein the facilitating encoding the first token comprisesfacilitating encoding the first token using a visual encoding technique,wherein the visual tag comprises a quick response (QR) coded version ofthe first token.

16. The non-transitory machine-readable medium of clause 14, wherein thesource data is stored in the first device, wherein the method comprisesfacilitating generating the first token associated with the source datastored on the first device.

17. The non-transitory machine-readable medium of clause 14, wherein theproviding for communication comprises providing for communicationutilizing an electronic mail or a multimedia messaging service.

18. The non-transitory machine-readable medium of clause 14, wherein thecommunication protocol to be utilized by the second device comprises atleast one of a peer-to-peer protocol, an interactive connectivityestablishment protocol, a session initiation protocol, a Bluetoothprotocol, a wireless fidelity (Wi-Fi) protocol, an extendable messagingand presence protocol (XMPP), a push protocol, or a non-industrystandard communication protocol.

19. The non-transitory machine-readable medium of clause 14, wherein thefacilitating encoding the first token comprises facilitating encodingthe first token in a form of a uniform resource locator (URL) to allowthe second device to access the source data via a website represented bythe URL of the first token.

20. The non-transitory machine-readable medium of clause 14, wherein themethod comprises a security measure comprising:

facilitating receiving information identifying at least one of thesecond device or a user of the second device, in response to the seconddevice attempting to access the source data;

facilitating validating the received information by a user of the firstdevice; and

facilitating authenticating the second device or the user of the seconddevice before allowing the second device to access the source data.

21. The non-transitory machine-readable medium of clause 14, wherein theproviding for communication allows the second device to access thesource data via a third device,

wherein the first device supports communication between the first deviceand the third device to facilitate receiving the first token from thethird device or to facilitate the second device to access the sourcedata,

wherein the first token comprises a metadata comprising one or more ofan identifier of a source device, authentication information associatedwith the source device, an identifier of the source data, or a path ofthe source data, wherein the first token enables downloading the sourcedata, wherein the source data is for at least setup, configuration, ormanagement of one or more computers.

22. An apparatus for facilitating sharing source data (e.g., 110, FIG.5), the apparatus comprising:

a first network interface (e.g., 512, FIG. 5) configured to supportcommunication based on a first communication protocol between theapparatus and a remote device (e.g., 130, FIGS. 1A-1D);

an encoder (e.g., 558, FIG. 5) configured to facilitate receiving afirst token associated with source data;

the encoder configured to facilitate encoding the first token using avisual coding technique to generate a visual tag; and

a display (e.g., 540, FIG. 5) configured to facilitate display of animage of the visual tag, to enable a first device located within closeproximity of the apparatus to capture the image and to enable the firstdevice to access the source data utilizing the first token from thevisual tag and utilizing a second communication protocol, wherein thefirst device is unable to access the source data without using the firsttoken,

wherein the first communication protocol is the same or different fromthe second communication protocol,

wherein the apparatus is a communication end-point device.

23. The apparatus of clause 22, further comprising:

an identification module configured to identify the source data and toprovide an identification information of the source data, to facilitatesharing of the source data, based on a user action at the apparatus; and

a second network interface configured to support communication, based onthe first communication protocol, from the apparatus to the remotedevice through a proxy server, the identification information, whereinthe identification information comprises at least one of an identifierof the remote device, a path in a file system of the remote device, or afile name.

24. The apparatus of clause 22, further comprising an identificationmodule configured to identify the source data and provide anidentification information of the source data, to facilitate sharing ofthe source data, based on a user action at the apparatus, wherein thefirst network interface is further configured to support communication,based on the first communication protocol, from the apparatus to theremote device, of the identification information, wherein theidentification information comprises at least one of an identifier ofthe remote device, a path in a file system of the remote device, or afile name.

25. The apparatus of clause 22, further comprising an identificationmodule configured to identify the source data and to facilitateproviding of an identification information of the source data, tosupport sharing of the source data, based on a user action at theapparatus,

wherein the first network interface is configured to supportcommunication for providing the identification information of the sourcedata to the remote device to enable generation of the first token inreal time in response to the communication for providing identificationinformation of the source data,

wherein the first network interface is further configured to facilitatereceiving the first token, at the apparatus from the remote device via aproxy server, utilizing the first communication protocol, in response tothe communication for providing identification information of the sourcedata,

wherein the apparatus comprises, a decoder to decode, prior to thefacilitating encoding, the first token received utilizing the firstcommunication protocol,

wherein the encoder is configured to facilitate encoding the first tokenusing a visual coding technique comprising a quick response (QR) coding,

wherein the first token comprises other information for accessing thesource data, wherein the other information comprises location of thesource data, wherein a size of the first token and the other informationincluded in the first token is less than a size of the source data,wherein the source data comprises more than one mega bytes,

wherein the encoder is further configured to encode the first token atthe apparatus.

26. The apparatus of clause 22, further comprising a security moduleconfigured to facilitate at least one of a first security measure and asecond security measure,

wherein the first security measure comprises:

-   -   facilitating receiving information identifying at least one of        the first device or a user of the first device, in response to        the first device attempting to access the source data; and    -   providing for communication, an approval following validation of        the received information by a user of the apparatus,

wherein the second security measure comprises:

-   -   providing for communication, information identifying at least        one of the first device or the user of the first device, to        enable authentication of the first device or the user of the        first device when the first device attempts to access the source        data.

27. The apparatus of clause 22, wherein the first network interface isfurther configured to facilitate providing a request, directed to theremote device, to transmit the source data to a server comprising acloud server and to send a second token to the apparatus, and whereinthe encoder is further configured to facilitate encoding the secondtoken using the visual coding technique to generate a second visual tagand facilitating display of the second visual tag to enable the firstdevice to access the source data transmitted to the server.

28. The apparatus of clause 27, wherein the first or the second tokencomprises a metadata comprising at least some of an identifier of theremote device, an identifier of the server, authentication informationassociated with the remote device, authentication information associatewith the server, an identifier of the source data stored in the remotedevice, a path of the source data stored in the remote device, anidentifier of the source data transmitted to the server, or a path ofthe source data transmitted to the server.

29. The apparatus of clause 22, wherein the first token is expirable andis a representation unique to one or more of the following: the sourcedata, the first device, a user of the first device, and time related tocreation or usage of the first token, and wherein the apparatus isconfigured to support a plurality of first devices, by providing forreceiving from the remote device a plurality of first tokens, andfacilitating providing for display of a plurality of visual tags eachvisual tag of the plurality of visual tags encoding a first token of theplurality of first tokens and each token of the plurality of firsttokens to enable one of the plurality of the first devices to access arespective visual tag of the plurality of visual tags and use therespective first token to access the source data, wherein each firsttoken of the plurality of first tokens is a representation unique to oneor more of the following: the source data, the one of the plurality ofthe first devices, a user of the one of the plurality of the firstdevices, and a time related to creation or usage of the token of theplurality of first tokens.

30. An apparatus (e.g., 110, FIG. 5) for facilitating sharing sourcedata, comprising: a processor (e.g., 530, FIG. 5) operable to facilitatereceiving a first token associated with the source data;

the processor (e.g., 530, FIG. 5) operable to facilitate encoding thefirst token to create a visual tag;

the processor (e.g., 530, FIG. 5) operable to provide for communicationfrom a first device to a second device (e.g., 120, FIG. 6) the visualtag, to enable the second device to access the source data utilizing thefirst token from the visual tag and utilizing a communication protocol,

wherein the second device is unable to access the source data withoutusing the first token, wherein the first device comprises the apparatus.

31. The apparatus of clause 30, wherein the processor is operable tofacilitate identifying the source data to initiate sharing of the sourcedata.

32. The apparatus of clause 30, wherein the source data is stored in thefirst device, wherein the processor is operable to facilitate generatingthe first token associated with the source data stored on the firstdevice.

33. The apparatus of clause 30, wherein the processor is operable toprovide for communication to the second device, the visual tag,utilizing an electronic mail or a multimedia messaging service.

34. The apparatus of clause 30, wherein the processor is operable tofacilitate encoding the first token in a form of a uniform resourcelocator (URL) to allow the second device to access the source data via awebsite represented by the URL of the first token.

35. The apparatus of clause 30, wherein the processor is operable toprovide for communication to the second device the visual tag to allowthe second device to access the source data via a third device,

wherein the first device supports communication between the first deviceand the third device to facilitate receiving the first token from thethird device or to facilitate the second device to access the sourcedata.

36. A method for facilitating sharing source data (e.g., 700A, FIG. 7A),comprising:

supporting communication based on a first communication protocol betweena first device and a third device, wherein the communication isassociated with source data (e.g., 710, FIG. 7A);

facilitating receiving a first token associated with the source data(e.g., 720, FIG. 7A);

facilitating encoding the first token to create a visual tag (e.g., 730,FIG. 7A);

providing for display the visual tag, to enable a second device tooptically capture the visual tag utilizing a camera and to allow thesecond device to access the source data utilizing the first token fromthe visual tag and utilizing a second communication protocol, whereinthe second device is unable to access the source data without using thefirst token (e.g., 740, FIG. 7A),

wherein the first communication protocol is the same or different fromthe second communication protocol,

wherein the first device is a communication end point device.

37. The method of clause 36, comprising identifying the source databased on a user action at the first device.

38. The method of clause 36, wherein the method comprises identifying,at the first device, the source data for sharing, wherein the supportingcommunication comprises providing for communication, from the firstdevice utilizing the first communication protocol to the third devicethrough a proxy server, identification information of the source databased on the identifying the source data, wherein the facilitatingencoding the first token comprises facilitating encoding the first tokenusing a visual encoding technique, wherein the visual tag comprises aquick response (QR) coded version of the first token.

39. The method of clause 36, wherein the method comprises identifyingthe source data for sharing,

wherein the supporting communication comprises providing forcommunication, to the third device, identification information of thesource data, wherein the identification information comprises at leastone of an identifier of the third device, a path in a file system of thethird device, or a file name,

wherein the supporting communication comprises providing forcommunication, to the third device, a request for the first token,

wherein the facilitating receiving comprises facilitating receiving thefirst token in response to the request.

40. The method of clause 36, wherein the facilitating encoding the firsttoken comprises facilitating encoding the first token using a visualencoding technique, wherein the visual tag comprises a quick response(QR) coded version of the first token, and further comprisingfacilitating notifying the second device when the first device is readyto facilitate providing the display of the visual tag to enable thesecond device to access the visual tag, wherein the notifying comprisessending a message to the second device.

41. The method of clause 36, wherein the method comprises at least oneof a first security measure and a second security measure, wherein thefirst security measure comprises:

-   -   facilitating receiving information identifying at least one of        the second device or a user of the second device, in response to        the second device attempting to access the source data; and    -   providing for communication, an approval following validation of        the received information by a user of the first device,

wherein the second security measure comprises:

-   -   providing for communication, information identifying at least        one of the second device or the user of the second device, to        enable authentication of the second device or the user of the        second device when the second device attempts to access the        source data.

42. The method of clause 36, wherein the method comprises:

facilitating transmitting the source data to a server comprising a cloudserver and to send a second token to the first device;

facilitating encoding the second token to a second visual tag;

providing for access to the second visual tag by the second device toenable the second device to access the source data transmitted to theserver using the second token.

43. The method of clause 36, wherein the source data comprises at leastone of a media file, a document, remote path information, remote desktopconnection information, security information, device managementinformation, or device configuration information.

44. A method for facilitating sharing source data, the methodcomprising:

facilitating receiving a first token associated with the source data;

facilitating encoding the first token to create a visual tag;

providing for communication from a first device to a second device thevisual tag, to enable the second device to access the source datautilizing the first token from the visual tag and utilizing acommunication protocol, wherein the second device is unable to accessthe source data without using the first token.

45. The method of clause 44, wherein the method comprises identifyingthe source data to initiate sharing of the source data.

46. The method of clause 44, wherein the source data is stored in thefirst device, wherein the method comprises facilitating generating thefirst token associated with the source data stored on the first device.

47. The method of clause 44, wherein the providing for communicationcomprises providing for communication utilizing an electronic mail or amultimedia messaging service.

48. The method of clause 44, wherein the communication protocol to beutilized by the second device comprises at least one of a peer-to-peerprotocol, an interactive connectivity establishment protocol, a sessioninitiation protocol, a near field communication protocol, a Bluetoothprotocol, a wireless fidelity (Wi-Fi) protocol, an extendable messagingand presence protocol (XMPP), a push protocol, or a non-industrystandard communication protocol.

49. The method of clause 44, wherein the facilitating encoding the firsttoken comprises facilitating encoding the first token in a form of auniform resource locator (URL) to allow the second device to access thesource data via a website represented by the URL of the first token.

50. The method of clause 44, wherein the providing for communicationallows the second device to access the source data via a third device,wherein the first device supports communication between the first deviceand the third device to facilitate receiving the first token from thethird device or to facilitate the second device to access the sourcedata.

51. An apparatus for facilitating sharing source data (e.g., 1100, FIG.11), the apparatus comprising:

means for supporting communication based on a first communicationprotocol between a first device and a remote device, wherein thecommunication is associated with source data (e.g., 1110, FIG. 11);

means for facilitating receiving a first token associated with thesource data (e.g., 1120, FIG. 11);

means for facilitating encoding the first token to create a visual tag(e.g., 1130, FIG. 11);

means for providing for display the visual tag, to enable a seconddevice to optically capture the visual tag utilizing a camera and toallow the second device to access the source data utilizing the firsttoken from the visual tag and utilizing a second communication protocol,wherein the second device is unable to access the source data withoutusing the first token (e.g., 1140, FIG. 11),

wherein the first communication protocol is the same or different fromthe second communication protocol,

52. An apparatus for facilitating sharing source data (e.g., 1300, FIG.13), the apparatus comprising:

means for facilitating receiving a first token associated with thesource data (e.g., 1310, FIG. 13);

means for facilitating encoding the first token to create a visual tag(e.g., 1320, FIG. 13);

means for providing for communication from a first device to a seconddevice the visual tag, to enable the second device to access the sourcedata utilizing the first token from the visual tag and utilizing acommunication protocol, wherein the second device is unable to accessthe source data without using the first token (e.g., 1330, FIG. 13).

53. A hardware apparatus comprising means adapted for performing amethod associated with any one of the foregoing clauses.

54. An apparatus comprising means for performing a method associatedwith any one of the foregoing clauses.

55. An apparatus comprising one or more processors configured to performa method associated with any one of the foregoing clauses.

56. An apparatus comprising one or more processors and amachine-readable medium, the machine-readable medium comprisinginstructions executable by one or more processors to perform a methodassociated with any one of the foregoing clauses.

Examples of Decoding Clauses

1. A non-transitory machine-readable medium (e.g., 620, 650, FIG. 6)comprising instructions stored therein, the instructions executable byone or more processors (e.g., 630, FIG. 6) to facilitate performing amethod (e.g., 700B, FIG. 7B) for facilitating sharing source data, themethod comprising:

facilitating optically capturing, by an optical device of a firstdevice, an image of a visual tag from a second device, wherein thevisual tag of the second device is located within close proximity of theoptical device of the first device, wherein the visual tag comprises avisually encoded first token associated with the source data, whereinthe first token is a non-public token, wherein the first token is basedon the source data for sharing (e.g., 750, FIG. 7B);

facilitating decoding the visual tag to retrieve the first token (e.g.,760, FIG. 7B);

providing for communication based on a first communication protocol to athird device to download the source data using the retrieved first token(e.g., 770, FIG. 7B),

wherein the second device is adapted to provide display of the visualtag.

2. The non-transitory machine-readable medium of clause 1, wherein themethod comprises facilitating accessing the source data by the firstdevice, after a time period to allow the third device to receive fromthe second device an approval by a user of the second device for theaccess of the source data.

3. The non-transitory machine-readable medium of clause 2, wherein themethod comprises:

facilitating capturing of an image of a visually encoded second tokenassociated with the source data from the second device located withinclose proximity of the first device;

facilitating decoding the visually encoded second token to retrieve thesecond token; and

providing for communication based on a second communication protocol toa server comprising a cloud server to download the source data using theretrieved second token, after the source data is transmitted to theserver from the third device, in response to a request from the seconddevice.

4. The non-transitory machine-readable medium of clause 1, wherein thesource data comprises at least one of a media file, a document, remotepath information, remote desktop connection information, securityinformation, device management information, or device configurationinformation.

5. The non-transitory machine-readable medium of clause 1, wherein thefacilitating decoding the visual tag comprises facilitating decoding thevisual tag encoded using quick response (QR) code, further comprisingsupporting receiving of a notification from the second device, thenotification notifying the first device that the second device is readyto facilitate providing an image of the visual tag, wherein thesupporting receiving of a notification comprises supporting receiving amessage including a text message from the second device.

6. The non-transitory machine-readable medium of clause 3, wherein thefirst token or the second token comprises a metadata comprising one ormore of an identifier of a source device, an identifier of the server,authentication information associated with the source device,authentication information associate with the server, an identifier ofthe source data, a path of the source data, an identifier of the sourcedata transmitted to the server, or a path of the source data transmittedto the server, wherein the first token and the second token areexpirable and are representations unique to one or more of thefollowing: the source data, the second device, a user of the seconddevice, and time related to creation or usage of the first token or thesecond token, wherein the source device contains the source data.

7. The non-transitory machine-readable medium of clause 3, wherein themethod comprises:

providing for communication based on the first communication protocol tothe third device to download the source data within a time period priorto an expiration of the first token; and

providing for communication based on the second communication protocolto the server to download the source data within a time period prior toan expiration of the second token.

8. The non-transitory machine-readable medium of clause 3, wherein thefirst device is a mobile device comprising one or more displays, abuilt-in camera, one or more processors, one or more network interfaces,and the non-transitory machine-readable medium, wherein a first one ofthe one or more network interfaces is configured to supportcommunication based on the first communication protocol, wherein asecond one of the one or more network interfaces is configured tosupport communication based on the second communication protocol,wherein the second device is a mobile device, wherein the third deviceis a computing device behind a firewall, wherein the first token and thesecond token do not exist prior to identifying the source data to beshared, wherein the first token and the second token are creatable inreal time and are expirable, wherein each of the first and secondcommunication protocols comprises one or more communication protocols.

9. A non-transitory machine-readable medium (e.g., 620, 650, FIG. 6)comprising instructions stored therein, the instructions executable byone or more processors (e.g., 630, FIG. 6) to facilitate performing amethod for facilitating sharing source data (e.g., 700D, FIG. 7D), themethod comprising:

facilitating obtaining an image of a visual tag from a first device,wherein the visual tag comprises a visually encoded first tokenassociated with the source data, wherein the first token is a non-publictoken (e.g., 790, FIG. 7D);

facilitating decoding the visual tag to retrieve the first token (e.g.,792, FIG. 7D);

providing for communication based on a first communication protocol to asecond device to download the source data using the retrieved firsttoken (e.g., 794, FIG. 7D).

10. The non-transitory machine-readable medium of clause 9, wherein thesecond device is a remote device, wherein the source data is stored inthe remote device.

11. The non-transitory machine-readable medium of clause 9, wherein thesource data is stored in the first device, wherein the visual tagcomprises a quick response (QR) code.

12. The non-transitory machine-readable medium of clause 9, wherein theretrieved first token comprises a uniform resource locator (URL),wherein the providing for communication comprises facilitating openingthe URL on a web browser to allow a determination as to whether the adevice comprising the non-transitory machine-readable medium is enabledto facilitate downloading the source data using the retrieved firsttoken.

13. The non-transitory machine-readable medium of clause 12,

wherein if the device is enabled to facilitate downloading, then themethod comprises facilitating downloading the source data based on theretrieved first token,

wherein if the device is not enabled to facilitate downloading, then themethod comprises providing for communication to the second device arequest to download the source data and facilitating receiving thesource data based on the request.

14. The non-transitory machine-readable medium of clause 9, wherein theretrieved first token comprises a uniform resource locator (URL),wherein the URL comprises an identifier of a device storing the sourcedata, a path of the source data stored in the device, and authenticationinformation.

15. The non-transitory machine-readable medium of clause 9, wherein thefirst communication protocol comprises at least one of a peer-to-peerprotocol, an interactive connectivity establishment protocol, a sessioninitiation protocol, a near field communication protocol, a Bluetoothprotocol, a wireless fidelity (Wi-Fi) protocol, an extendable messagingand presence protocol (XMPP), a push protocol, or a non-industrystandard communication protocol.

16. An apparatus for facilitating sharing source data (e.g., 120, FIG.6), the apparatus comprising:

a camera (e.g., 610, FIG. 6) configured to facilitate capturing an imageof a visual tag representing a first token associated with the sourcedata from a display of a first device (e.g., 110, FIG. 5), locatedwithin close proximity of the camera, wherein the first token is anon-public token, wherein the first token is based on the source datafor sharing;

a decoder (e.g., 656, FIG. 6) configured to facilitate decoding thevisual tag to retrieve the first token;

a network interface (e.g., 612 or 614, FIG. 6) configured to provide forcommunication based on a first communication protocol to a remote deviceto download the source data using the retrieved first token,

wherein the display (e.g., 640, FIG. 6) of the first device is enabledto display the image of the visual tag to be captured by the camera.

17. The apparatus of clause 16, further comprising a download managerconfigured to facilitate accessing the source data by the apparatus,after a time period to allow the remote device to receive from the firstdevice an approval by a user of the first device for the access of thesource data.

18. The apparatus of clause 16, wherein the camera is a built-in camera,wherein the camera is further configured to facilitate capturing animage of a second visual tag representing a second token associated withthe source data from the first device located within a close proximityof the apparatus, wherein the decoder is further configured tofacilitate decoding the visual tag to retrieve the second token; andfurther comprising a second network interface configured to provide forcommunication based on a second communication protocol to a servercomprising a cloud server to download the source data using the decodedsecond token, after the source data is transmitted to the server fromthe remote device, in response to a request from the first device.

19. The apparatus of clause 16, wherein the source data comprises atleast one of a media file, a document, remote path information, remotedesktop connection information, security information, device managementinformation, or device configuration information.

20. The apparatus of clause 16, wherein the first token comprises ametadata comprising one or more of the following: an identifier of theremote device, authentication information associated with the remotedevice, an identifier of the source data, or a path of the source data,wherein the first token is expirable and is a representation unique toone or more of the following: the source data, the first device, a userof the first device, and a time related to creation or usage of thefirst token.

21. The apparatus of clause 18, wherein:

the first network interface is further configured to provide forcommunication based on the first communication protocol to the remotedevice to download the source data within a time period prior to anexpiration of the first token; and

the second network interface is further configured to provide forcommunication based on the second communication protocol to the serverto download the source data within a time period prior to an expirationof the second token.

22. An apparatus (e.g., 120, FIG. 6) for facilitating sharing sourcedata, comprising: a processor (e.g., 630, FIG. 6) operable to facilitateobtaining an image of a visual tag from a first device (e.g., 110, FIG.5), wherein the visual tag comprises a visually encoded first tokenassociated with the source data, wherein the first token is a non-publictoken;

the processor (e.g., 630, FIG. 6) operable to facilitate decoding thevisual tag to retrieve the first token;

the processor (e.g., 630, FIG. 6) operable to provide for communicationbased on a first communication protocol to a second device to downloadthe source data using the retrieved first token.

23. The apparatus of clause 22, wherein the second device is a remotedevice, wherein the source data is stored in the remote device, whereinthe visual tag comprises a quick response (QR) code.

24. The apparatus of clause 22, wherein the source data is stored in thefirst device.

25. The apparatus of clause 22, wherein the retrieved first tokencomprises a uniform resource locator (URL), wherein the processor isoperable to facilitate opening the URL on a web browser to allow adetermination as to whether the apparatus is enabled to facilitatedownloading the source data using the retrieved first token.

26. The apparatus of clause 25,

wherein if the apparatus is enabled to facilitate downloading, then theprocessor is operable to facilitate downloading the source data based onthe retrieved first token,

wherein if the apparatus is not enabled to facilitate downloading, thenthe processor is operable to provide for communication to the seconddevice a request to download the source data and to facilitate receivingthe source data based on the request.

27. The apparatus of clause 22, wherein the retrieved first tokencomprises a uniform resource locator (UL), wherein the URL comprises anidentifier of a device storing the source data, a path of the sourcedata stored in the device, and authentication information.

28. A method for facilitating sharing source data (e.g., 700B, FIG. 7B),comprising:

facilitating optically capturing, by an optical device of a firstdevice, an image of a visual tag from a second device, wherein thevisual tag of the second device is located within close proximity of theoptical device of the first device, wherein the visual tag comprises avisually encoded first token associated with the source data, whereinthe first token is a non-public token, wherein the first token is basedon the source data for sharing (e.g., 750, FIG. 7B);

facilitating decoding the visual tag to retrieve the first token (e.g.,760, FIG. 7B);

providing for communication based on a first communication protocol to athird device to download the source data using the retrieved first token(e.g., 770, FIG. 7B), wherein the second device is adapted to providedisplay of the visual tag.

29. The method of clause 28, wherein the method comprises facilitatingaccessing the source data by the first device, after a time period toallow the third device to receive from the second device an approval bya user of the second device for the access of the source data.

30. The method of clause 29, wherein the method comprises:

facilitating capturing of an image of a visually encoded second tokenassociated with the source data from the second device located withinclose proximity of the first device;

facilitating decoding the visually encoded second token to retrieve thesecond token; and

providing for communication based on a second communication protocol toa server comprising a cloud server to download the source data using theretrieved second token, after the source data is transmitted to theserver from the third device, in response to a request from the seconddevice.

31. The method of clause 28, wherein the source data comprises at leastone of a media file, a document, remote path information, remote desktopconnection information, security information, device managementinformation, or device configuration information.

32. The method of clause 28, wherein the facilitating decoding thevisual tag comprises facilitating decoding the visual tag encoded usingquick response (QR) code, further comprising supporting receiving of anotification from the second device, the notification notifying thefirst device that the second device is ready to facilitate providing animage of the visual tag, wherein the supporting receiving of anotification comprises supporting receiving a message including a textmessage from the second device.

33. The method of clause 30, wherein the first token or the second tokencomprises a metadata comprising one or more of an identifier of a sourcedevice, an identifier of the server, authentication informationassociated with the source device, authentication information associatewith the server, an identifier of the source data, a path of the sourcedata, an identifier of the source data transmitted to the server, or apath of the source data transmitted to the server, wherein the firsttoken and the second token are expirable and are representations uniqueto one or more of the following: the source data, the second device, auser of the second device, and time related to creation or usage of thefirst token or the second token, wherein the source device contains thesource data.

34. The method of clause 30, wherein the method comprises:

providing for communication based on the first communication protocol tothe third device to download the source data within a time period priorto an expiration of the first token; and

providing for communication based on the second communication protocolto the server to download the source data within a time period prior toan expiration of the second token.

35. A method for facilitating sharing source data (e.g., 700D, FIG. 7D),comprising: facilitating obtaining an image of a visual tag from a firstdevice, wherein the visual tag comprises a visually encoded first tokenassociated with the source data, wherein the first token is a non-publictoken (e.g., 790, FIG. 7D);

facilitating decoding the visual tag to retrieve the first token (e.g.,792, FIG. 7D);

providing for communication based on a first communication protocol to asecond device to download the source data using the retrieved firsttoken (e.g., 794, FIG. 7D).

36. The method of clause 35, wherein the second device is a remotedevice, wherein the source data is stored in the remote device.

37. The method of clause 35, wherein the source data is stored in thefirst device.

38. The method of clause 35, wherein the retrieved first token comprisesa uniform resource locator (URL), wherein the providing forcommunication comprises facilitating opening the URL on a web browser toallow a determination as to whether the a device operable to provide forcommunication to the second device is enabled to facilitate downloadingthe source data using the retrieved first token.

39. The method of clause 38,

wherein if the device is enabled to facilitate downloading, then themethod comprises facilitating downloading the source data based on theretrieved first token,

wherein if the device is not enabled to facilitate downloading, then themethod comprises providing for communication to the second device arequest to download the source data and facilitating receiving thesource data based on the request.

40. The method of clause 35, wherein the retrieved first token comprisesa uniform resource locator (URL), wherein the URL comprises anidentifier of a device storing the source data, a path of the sourcedata stored in the device, and authentication information.

41. The method of clause 35, wherein the first communication protocolcomprises at least one of a peer-to-peer protocol, an interactiveconnectivity establishment protocol, a session initiation protocol, anear field communication protocol, a Bluetooth protocol, a wirelessfidelity (Wi-Fi) protocol, an extendable messaging and presence protocol(XMPP), a push protocol, or a non-industry standard communicationprotocol.

42. An apparatus for facilitating sharing source data (e.g., 1200, FIG.12), the apparatus comprising:

means for facilitating optically capturing, by an optical device of afirst device, an image of a visual tag from a second device, wherein thevisual tag of the second device is located within close proximity of theoptical device of the first device, wherein the visual tag comprises avisually encoded first token associated with the source data, whereinthe first token is a non-public token, wherein the first token is basedon the source data for sharing (e.g., 1210, FIG. 12);

means for facilitating decoding the visual tag to retrieve the firsttoken (e.g., 1220, FIG. 12);

means for providing for communication based on a first communicationprotocol to a third device to download the source data using theretrieved first token (e.g., 1230, FIG. 12),

wherein the second device is adapted to provide display of the visualtag.

43. An apparatus for facilitating sharing source data (e.g., 1400, FIG.14), the apparatus comprising:

means for facilitating obtaining an image of a visual tag from a firstdevice, wherein the visual tag comprises a visually encoded first tokenassociated with the source data, wherein the first token is a non-publictoken (e.g., 1410, FIG. 14);

means for facilitating decoding the visual tag to retrieve the firsttoken (e.g., 1420. FIG. 14);

means for providing for communication based on a first communicationprotocol to a second device to download the source data using theretrieved first token (e.g., 1430, FIG. 14).

44. A hardware apparatus comprising means adapted for performing amethod associated with any one of the foregoing clauses.

45. An apparatus comprising means for performing a method associatedwith any one of the foregoing clauses.

46. An apparatus comprising one or more processors configured to performa method associated with any one of the foregoing clauses.

47. An apparatus comprising one or more processors and amachine-readable medium, the machine-readable medium comprisinginstructions executable by one or more processors to perform a methodassociated with any one of the foregoing clauses.

In one aspect, any of the clauses herein may depend from any one of theindependent clauses or any one of the dependent clauses. In one aspect,any of the clauses (e.g., dependent or independent clauses) may becombined with any other clauses (e.g., dependent or independentclauses). In one aspect, a claim may include some or all of the words(e.g., steps, operations, means or components) recited in a clause, asentence, a phrase or a paragraph. In one aspect, a claim may includesome or all of the words recited in one or more clauses, sentences,phrases or paragraphs. In one aspect, some of the words in each of theclauses, sentences, phrases or paragraphs may be removed. In one aspect,additional words or elements may be added to a clause, a sentence, aphrase or a paragraph. In one aspect, the subject technology may beimplemented without utilizing some of the components, elements,functions or operations described herein. In one aspect, the subjecttechnology may be implemented utilizing additional components, elements,functions or operations.

In one aspect, any methods, instructions, code, means, logic,components, blocks, modules and the like (e.g., software or hardware)described or claimed herein can be represented in drawings (e.g., flowcharts, block diagrams), such drawings (regardless of whether explicitlyshown or not) are expressly incorporated herein by reference, and suchdrawings (if not yet explicitly shown) can be added to the disclosurewithout constituting new matter. For brevity, some (but not necessarilyall) of the clauses/descriptions/claims are explicitly represented indrawings, but any of the clauses/descriptions/claims can be representedin drawings in a manner similar to those drawings explicitly shown. Forexample, a flow chart can be drawn for any of the clauses, sentences orclaims for a method such that each operation or step is connected to thenext operation or step by an arrow. In another example, a block diagramcan be drawn for any of the clauses, sentences or claims havingmeans-for elements (e.g., means for performing an action) such that eachmeans-for element can be represented as a module for element (e.g., amodule for performing an action).

Those of skill in the art would appreciate that items such as thevarious illustrative blocks; modules, elements, components, methods,operations, steps, and algorithms described herein (e.g., components of,or operations on, client 102 or server 104/304) may be implemented ashardware, computer software, or a combination of both.

To illustrate the interchangeability of hardware and software, itemssuch as the various illustrative blocks, modules, elements, components,methods, operations, steps, and algorithms have been described generallyin terms of their functionality. Whether such functionality isimplemented as hardware or software depends upon the particularapplication and design constraints imposed on the overall system.Skilled artisans may implement the described functionality in varyingways for each particular application.

In one aspect, “means,” a block, a module, an element, a component or aprocessor may be an item (e.g., one or more of blocks, modules,elements, components or processors) for performing one or more functionsor operations. In one aspect, such an item may be an apparatus,hardware, or a portion thereof. In one example, an item may have astructure in the form of, for example, an instruction(s) for performingthe function(s) or operation(s), where the instruction(s) are encoded orstored on a machine-readable medium, on another device, or on a portionthereof, where an instruction(s) may be software, an application(s), asubroutine(s), or a portion thereof. In an example, an item may beimplemented as one or more circuits configured to perform thefunction(s) or operation(s). A circuit may include one or more circuitsand/or logic. A circuit may be analog and/or digital. A circuit may beelectrical and/or optical. A circuit may include transistors. In anexample, one or more items may be implemented as a processing system(e.g., a digital signal processor (DSP), an application specificintegrated circuit (ASIC), a field programmable gate array (FPGA),etc.). Those skilled in the art will recognize how to implement theinstructions, circuits, and processing systems.

A reference to an element in the singular is not intended to mean “oneand only one” unless specifically so stated, but rather “one or more.”For example, a client may refer to one or more clients, a server mayrefer to one or more servers, an operation may refer to one or moreoperations, and a signal, message, or communication may refer to one ormore signals, messages, or communications.

Unless specifically stated otherwise, the term “some” refers to one ormore. Pronouns in the masculine (e.g., his) include the feminine andneuter gender (e.g., her and its) and vice versa. Headings andsubheadings, if any, are used for convenience only and do not limit theinvention.

The word “exemplary” is used herein to mean “serving as an example orillustration.” Any aspect or design described herein as “exemplary” isnot necessarily to be construed as preferred or advantageous over otheraspects or designs. In one aspect, various alternative configurationsand operations described herein may be considered to be at leastequivalent.

A phrase such as an “aspect” does not imply that such aspect isessential to the subject technology or that such aspect applies to allconfigurations of the subject technology. A disclosure relating to anaspect may apply to all configurations, or one or more configurations.An aspect may provide one or more examples. A phrase such as an aspectmay refer to one or more aspects and vice versa. A phrase such as an“embodiment” does not imply that such embodiment is essential to thesubject technology or that such embodiment applies to all configurationsof the subject technology. A disclosure relating to an embodiment mayapply to all embodiments, or one or more embodiments. An embodiment mayprovide one or more examples. A phrase such an embodiment may refer toone or more embodiments and vice versa. A phrase such as a“configuration” does not imply that such configuration is essential tothe subject technology or that such configuration applies to allconfigurations of the subject technology. A disclosure relating to aconfiguration may apply to all configurations, or one or moreconfigurations. A configuration may provide one or more examples. Aphrase such a configuration may refer to one or more configurations andvice versa.

In one aspect of the disclosure, when actions or functions are describedas being performed by an item (e.g., modifying, intercepting,redirecting, determining, obtaining, creating, operating, deleting,removing, receiving, providing, generating, converting, displaying,notifying, accepting, selecting, controlling, transmitting, reporting,sending, or any other action or function), it is understood that suchactions or functions may be performed by the item directly orindirectly. In one aspect, when a module is described as performing anaction, the module may be understood to perform the action directly. Inone aspect, when a module is described as performing an action, themodule may be understood to perform the action indirectly, for example,by facilitating, enabling or causing such an action.

In one aspect, unless otherwise stated, all measurements, values,ratings, positions, magnitudes, sizes, and other specifications that areset forth in this specification, including in the claims that follow,are approximate, not exact. In one aspect, they are intended to have areasonable range that is consistent with the functions to which theyrelate and with what is customary in the art to which they pertain.

In one aspect, the term “coupled” or the like may refer to beingdirectly coupled. In another aspect, the term “coupled” or the like mayrefer to being indirectly coupled.

Various items may be arranged differently (e.g., arranged in a differentorder, or partitioned in a different way) all without departing from thescope of the subject technology. In one aspect of the disclosure, theelements recited in the accompanying claims may be performed by one ormore modules or sub-modules.

It is understood that the specific order or hierarchy of steps,operations or processes disclosed are an illustration of exemplaryapproaches. Based upon design preferences, it is understood that thespecific order or hierarchy of steps, operations or processes may berearranged. Some of the steps, operations or processes may be performedsimultaneously. Some or all of the steps, operations, or processes maybe performed automatically, without the intervention of a user. Theaccompanying method claims, if any, present elements of the varioussteps, operations or processes in a sample order, and are not meant tobe limited to the specific order or hierarchy presented.

The disclosure is provided to enable any person skilled in the art topractice the various aspects described herein. The disclosure providesvarious examples of the subject technology, and the subject technologyis not limited to these examples. Various modifications to these aspectswill be readily apparent to those skilled in the art, and the genericprinciples defined herein may be applied to other aspects.

All structural and functional equivalents to the elements of the variousaspects described throughout this disclosure that are known or latercome to be known to those of ordinary skill in the art are expresslyincorporated herein by reference and are intended to be encompassed bythe claims. Moreover, nothing disclosed herein is intended to bededicated to the public regardless of whether such disclosure isexplicitly recited in the claims. No claim element is to be construedunder the provisions of 35 U.S.C. §112, sixth paragraph, unless theelement is expressly recited using the phrase “means for” or, in thecase of a method claim, the element is recited using the phrase “stepfor.” Furthermore, to the extent that the term “include,” “have,” or thelike is used, such term is intended to be inclusive in a manner similarto the term “comprise” as “comprise” is interpreted when employed as atransitional word in a claim.

The Title, Background, Summary, Brief Description of the Drawings andAbstract of the disclosure are hereby incorporated into the disclosureand are provided as illustrative examples of the disclosure, not asrestrictive descriptions. It is submitted with the understanding thatthey will not be used to limit the scope or meaning of the claims. Inaddition, in the Detailed Description, it can be seen that thedescription provides illustrative examples and the various features aregrouped together in various embodiments for the purpose of streamliningthe disclosure. This method of disclosure is not to be interpreted asreflecting an intention that the claimed subject matter requires morefeatures than are expressly recited in each claim. Rather, as thefollowing claims reflect, inventive subject matter lies in less than allfeatures of a single disclosed configuration or operation. The followingclaims are hereby incorporated into the Detailed Description, with eachclaim standing on its own as a separately claimed subject matter.

The claims are not intended to be limited to the aspects describedherein, but are to be accorded the full scope consistent with thelanguage claims and to encompass all legal equivalents. Notwithstanding,none of the claims are intended to embrace subject matter that fails tosatisfy the requirement of 35 U.S.C. §101, 102, or 103, nor should theybe interpreted in such a way. Any unintended embracement of such subjectmatter is hereby disclaimed.

1-50. (canceled)
 51. A non-transitory machine-readable medium comprisinginstructions stored therein, the instructions executable by one or moreprocessors to perform a method for sharing source data, the methodcomprising: identifying, at a first device, a source data for sharing;communicating an identification of the source data through a proxyserver using a first communication protocol between the first device anda remote device; receiving, by the first device, a first tokenassociated with the source data; encoding, by the first device, thefirst token to create a visual tag; and displaying the visual tag on thefirst device such that a second device can optically capture the visualtag, decode the visual tag to access the first token, access the sourcedata using the first token and a second communication protocol, whereinthe second device is unable to access the source data without using thefirst token.
 52. The non-transitory machine-readable medium of claim 1,wherein the source data is identified based on a user action at thefirst device.
 53. The non-transitory machine-readable medium of claim 1,wherein: communicating the identification of the source data includes:communicating, to the remote device, the identification of the sourcedata, wherein the identification includes at least one of an identifierof a source device containing the source data, a path in a file systemof the source device, or a file name; and communicating, to the remotedevice, a request for the first token; and receiving the first tokenincludes receiving the first token in response to the request.
 54. Thenon-transitory machine-readable medium of claim 1, wherein:communicating the identification of the source data includes providingthe identification of the source data to the remote device such that theremote device generates the first token in real time in response toreceiving the identification of the source data; receiving the firsttoken includes receiving the first token from the remote device via aproxy server, at the first device, using the first communicationprotocol, in response to receiving the identification of the sourcedata; and encoding the first token includes decoding the first tokenprior to encoding the first visual tag.
 55. The non-transitorymachine-readable medium of claim 1, wherein the first token is encodedby encoding the first token using a visual encoding technique.
 56. Thenon-transitory machine-readable medium of claim 1, further comprisingnotifying the second device when the first device is ready to displaythe visual tag by sending a message to the second device.
 57. Thenon-transitory machine-readable medium of claim 1, further comprisingauthorizing access to the source data by the second device.
 58. Thenon-transitory machine-readable medium of claim 1, wherein the firsttoken comprises a metadata comprising at least one of an identifier of asource device, an identifier of the server, authentication informationassociated with the source device, authentication information associatewith the server, an identifier of the source data, a path of the sourcedata, an identifier of the source data transmitted to the server, or apath of the source data transmitted to the server.
 59. Thenon-transitory machine-readable medium of claim 1, wherein the sourcedata is at least one of a media file, a document, remote pathinformation, remote desktop connection information, securityinformation, device management information, or device configurationinformation.
 60. An apparatus for sharing source data comprising: anidentification module configured to: identify a source data for sharing;and provide an identification of the source data; a first networkinterface configured to support communication based on a firstcommunication protocol between the apparatus and a remote device; asecond network interface configured to support communication, based onthe first communication protocol, from the apparatus to the remotedevice through a proxy server, the identification of the source data; anencoder configured to: receive, from the remote device, a first tokenassociated with source data; and encode the first token using a visualcoding technique to generate a visual tag; and a display configured todisplay the visual tag such that a first device can capture the visualtag, decode the visual tag to access the first token, access the sourcedata using the first token and a second communication protocol, whereinthe second device is unable to access the source data without using thefirst token.
 61. The apparatus of claim 1, wherein the source data isidentified based on a user action at the apparatus.
 62. The apparatus ofclaim 1, wherein: the identification module provides the identificationof the source data by: communicating, to the remote device, theidentification of the source data, wherein the identification includesat least one of an identifier of a source device containing the sourcedata, a path in a file system of the source device, or a file name; andcommunicating, to the remote device, a request for the first token; andreceiving the first token includes receiving the first token in responseto the request.
 63. The apparatus of claim 1, wherein: theidentification module provides the identification of the source data byproviding the identification of the source data to the remote devicesuch that the remote device generates the first token in real time inresponse to receiving the identification of the source data; and theencoder receives the first token by receiving the first token from theremote device via a proxy server, at the apparatus, using the firstcommunication protocol, in response to receiving the identification ofthe source data and encodes the first token by decoding the first tokenprior to encoding the first visual tag.
 64. The apparatus of claim 1,wherein the first token is encoded by encoding the first token using avisual encoding technique.
 65. The apparatus of claim 1, furthercomprising notifying the first device when the apparatus is ready todisplay the visual tag by sending a message to the first device.
 66. Amethod for sharing source data comprising: identifying, at a firstdevice, a source data for sharing; communicating an identification ofthe source data through a proxy server using a first communicationprotocol between the first device and a remote device; receiving, by thefirst device, a first token associated with the source data; encoding,by the first device, the first token to create a visual tag; anddisplaying the visual tag on the first device such that a second devicecan optically capture the visual tag, decode the visual tag to accessthe first token, access the source data using the first token and asecond communication protocol, wherein the second device is unable toaccess the source data without using the first token.
 67. The method ofclaim 1, wherein the source data is identified based on a user action atthe first device.
 68. The method of claim 1, wherein: communicating theidentification of the source data includes providing the identificationof the source data to the remote device such that the remote devicegenerates the first token in real time in response to receiving theidentification of the source data; receiving the first token includesreceiving the first token from the remote device via a proxy server, atthe first device, using the first communication protocol, in response toreceiving the identification of the source data; and encoding the firsttoken includes decoding the first token prior to encoding the firstvisual tag.
 69. The method of claim 1, wherein the first token isencoded by encoding the first token using a visual encoding technique.70. The method of claim 1, further comprising notifying the seconddevice when the first device is ready to display the visual tag bysending a message to the second device.